iOS - 自定义视图不填充superview

时间:2015-07-13 06:22:16

标签: ios swift uistoryboard

我已经为我的应用制作了一个导航栏,我想在我的所有屏幕中重复使用。

但问题是它没有填满指定的空间。 那么,如何设置自定义导航栏视图应该与分配的超级视图具有相同的宽度和高度?

我的NavigationBarView.swift:

apache_status_dict = defaultdict(lambda : defaultdict(int))

加载我的NavigationBarView.xib。

然后在我的Main.storyboard上,我创建了一个新视图,并将视图的类设置为“NavigationBarView”。但现在它只填充了指定空间的一半左右。

如何让它填满整个空间?

2 个答案:

答案 0 :(得分:0)

  

如果不能正常工作,你必须给出闪存屏幕,然后调用以下方法

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    // set your custom view frame here
}

答案 1 :(得分:0)

在此处找到解决方案:https://gist.github.com/bwhiteley/049e4bede49e71a6d2e2

class CustomView : UIView {
@IBOutlet weak private var contentView:UIView!
// other outlets

override init(frame: CGRect) { // for using CustomView in code
    super.init(frame: frame)
    self.commonInit()
}

required init(coder aDecoder: NSCoder) { // for using CustomView in IB
    super.init(coder: aDecoder)
    self.commonInit()
}

private func commonInit() {
    NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil)
    contentView.frame = self.bounds
    contentView.autoresizingMask = .FlexibleHeight | .FlexibleWidth
    self.addSubview(contentView)
}
}

它就像一个魅力。 : - )