我有一个UIView
类,我以编程方式创建一些按钮和标签,并且我在一个附加到此类的ViewController
内部有一个视图。该类完美地按预期工作,但每当我尝试将此自定义UIView
类链接到xib视图时,我会收到以下错误:
-"Main.storyboard: error: IB Designables: Failed to update auto layout status: Interface Builder Cocoa Touch Tool crashed"
-"Rendering the view took longer than 200 ms. Your drawing code may suffer from slow performance.
"
-"error: IB Designables: Failed to render instance of MyView: Rendering the view took longer than 200 ms. Your drawing code may suffer from slow performance.
"
以下是UIView
类中的初始化代码:
@IBDesignable class MyView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func loadFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "MyView", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
func setup() {
var view = loadFromNib()
view.frame = bounds
view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
addSubview(view)
}
}
类和xib文件具有相同的名称,
更新:我发现了:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
是否负责所有错误,但如果我删除了它的内容并运行了该应用,则视图未按预期显示,我也尝试了awakeFromNib()
并发生了同样的问题。
答案 0 :(得分:0)
不太确定是什么导致了您的特定错误,但是当我在将xib文件中的UIView连接到自定义UIView类时遇到问题时,这是帮助我的:
1)删除DerivedData子文件夹的内容:
(再次构建项目时,将重新创建DerivedData的内容。)
您可以通过访问XCode首选项中的“位置”标签找到您的文件夹。 只需删除里面的文件夹,然后重新构建/运行你的项目。
2)清理你的项目
产品 - >清洁(或者只使用[command + shift + K]命令。
3)重新启动xcode并重新构建/运行您的代码。
希望这有帮助!