之前我没有问过一个类似的问题,但是它可能有太多的“东西”与我正在进行的确切问题无关:
我曾经是目前职位上仅限Android的开发人员,在此之前没有做任何iOS应用程序,所以我可能会因为错误的东西而烦恼。
我想从xib加载一个视图,该视图有一个我喜欢能够做这样的事情的父类(例如在UIViewController中):
override func viewDidLoad() {
let view = MyView()
view.unlimitedLabel.text = "bla bla unlimited character string"
self.view.addSubView(view)
}
MyView会是这样的(我省略了我为了保持干净而添加的内容):
import UIKit
class MyView : UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var deadlineLabel: UILabel!
}
那么推荐使用什么init,我应该对视图应用什么来使其尊重autoLayout?我知道当视图不知道它的父级等时,很难进行AutoLayout。
现在我通常会覆盖所有init并调用像
这样的私有函数private func setup() {
NSBundle.mainBundle().loadNibNamed("MyView", owner: self, options: nil)
view.setTranslatesAutoresizingMaskIntoConstraints(false)
addSubview(view)
}
这几乎没有按预期工作,我有时会为高度工作,但是宽度不受尊重它只需要xib的宽度。通常,视图将具有UIBuilder大小的xib。
xib设置正确,它现在适用于tableViewCell。并且“MyView”类设置为xib的文件所有者,连接的出口。
注意:我在iOS7上使用Swift