使用自动布局在swift中以编程方式“充气”xib

时间:2015-04-28 08:20:30

标签: ios xcode swift autolayout

之前我没有问过一个类似的问题,但是它可能有太多的“东西”与我正在进行的确切问题无关:

我曾经是目前职位上仅限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

0 个答案:

没有答案