Als ich "CustomView" in Code implementiert habe, war mein Verständnis der "init" -Methode nicht eindeutig, daher werde ich sie als Erinnerung veröffentlichen.
【Xcode】Version 12.0.1 【Swift】Version 5.3
CustomView.swift
import UIKit
class CustomView: UIView {
var imageView: UIImageView!
//Detaillierte Erklärung ①
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
//Detaillierte Erklärung ②
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
private func setup(){
let iWidth: CGFloat = 200
let iHeight: CGFloat = 200
let posX: CGFloat = (self.frame.width - iWidth)/2
let posY: CGFloat = (self.frame.height - iHeight)/2
imageView = UIImageView(frame: CGRect(x: posX, y: posY, width: iWidth, height: iHeight))
imageView.image = UIImage(named: "hoge")
self.addSubview(imageView)
}
}
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let customView = CustomView()
customView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height)
self.view.addSubview(customView)
}
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Recommended Posts