初めてnibファイルを使用しています。私はxibと対応する迅速なクラスを意味します。Xcode - IBOutletsとNibファイルの仕組みは?
import UIKit
@IBDesignable class LittleVideoView: UIView {
var view: UIView!
var nibName: String = "LittleVideoView"
// MARK: Views
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var clicksLabel: UILabel!
@IBOutlet weak var channelNameLabel: UILabel!
@IBOutlet weak var thumbnailImageView: UIImageView!
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func setup() {
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
addSubview(view)
}
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: nibName, bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
}
あなたが見ることができるように、私はいくつかのIBOutletsを作成し、エディタビューから:
は、ここに私の迅速なクラスです。すべて正常に動作します。
私には理解できないことがあります。私はこのクラスのペン先をプログラムでロードしています。なぜ、Xcodeが本当に正しいnibファイルをロードするかわからないうちにIBOutletsを作成するのはなぜですか?まもなく、私はIBOutletがこの場合どのように動作するのか理解していません。だから、XcodeはIBOutletsとsetup()メソッドのロードされたUIViewをどうやってリンクしますか?
これが知りたいのために不合理なことではありませんが、それ_again_を依頼する必要はありません。ここで何度も説明されています。 – matt