【问题标题】:loaded nib not updating frame size加载的笔尖不更新帧大小
【发布时间】:2016-06-24 01:54:45
【问题描述】:

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

流程:

  • viewDidLoad
  • loadNibNamed
  • 设置对应的框架
  • 将笔尖添加到主视图(此处大小错误,与笔尖文件相同)
  • 转到另一个视图
  • 返回(正确显示大小)
  • :悲伤:

我用来实例化笔尖的代码:

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
    }
}

【问题讨论】:

    标签: ios swift autolayout nib


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      相关资源
      最近更新 更多