加载的笔尖不更新帧大小

时间:2016-06-24 01:54:46

标签: ios swift autolayout nib

我在调整通过loadNibNamed加载的视图时出现问题,它们的框架在实例化时更新,并且在我转到另一个视图并返回时只获取设置大小。

流程:

  • viewDidLoad中
  • loadNibNamed
  • 设置相应的框架
  • 将nib添加到主视图(此处的大小错误,nib文件中的大小相同)
  • 前往另一个视图
  • 返回(尺寸正确显示)
  • :悲伤:

我用来实例化nib的代码:

class NibView: UIView {
  override init(frame: CGRect) {
        super.init(frame: frame)
        xibSetup("xibName")
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        xibSetup("xibName")
    }

  func xibSetup(name: String) {
        view = loadViewFromNib(name)
        view.translatesAutoresizingMaskIntoConstraints = false
        view.frame.size = bounds.size

        addSubview(view)

  func loadViewFromNib(name: String) -> UIView {
        let nib = NSBundle.mainBundle().loadNibNamed(name, owner: self, options: nil)
        let view = nib[0] as! UIView

        return view
    }
}

1 个答案:

答案 0 :(得分:0)

您正在从init方法调用xibSetupbounds.size尚未设置,但您正在使用它来设置view.frame.size