加载的笔尖不更新帧大小

Posted

技术标签:

【中文标题】加载的笔尖不更新帧大小【英文标题】: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
    

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于加载的笔尖不更新帧大小的主要内容,如果未能解决你的问题,请参考以下文章

从笔尖加载的 UITableViewCell 未更新(缓存?)

加载笔尖但未设置视图出口

视图从笔尖加载但不可见?

如何调试 NSInternalInconsistencyException 试图加载不存在的笔尖?

ViewController 正在加载一个不存在的笔尖

从笔尖加载的 UITableView 单元格不显示背景颜色