渲染故事板时出现 IBDesignable 错误
Posted
技术标签:
【中文标题】渲染故事板时出现 IBDesignable 错误【英文标题】:IBDesignable errors when rendering storyboard 【发布时间】:2018-01-04 10:39:24 【问题描述】:我尝试遵循1 和2 中的一些指南,但是当我尝试在情节提要中呈现自定义视图时出现错误。
无法渲染和更新视图控制器的自动布局状态。代理抛出异常。
这是我迄今为止尝试过的:
@IBDesignable final class CustomView: UIView
override init(frame: CGRect)
super.init(frame: frame)
setup()
required init?(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
setup()
private func setup()
let customViewNib = loadFromNib()
customViewNib.frame = bounds
customViewNib.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
addSubview(customViewNib)
func loadFromNib() -> UIView
let nib = UINib(nibName: "CustomView", bundle: Bundle.main)
let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
return view
我已经设置了我的自定义视图的文件所有者。
我已经创建了一个新的空项目来解决这个问题:
https://github.com/ivangodfather/CustomView
或
https://ufile.io/imr9p
【问题讨论】:
请将该 ufile 链接后面的任何内容上传到此站点。将代码或图像放在这里。 很遗憾我不能在这里上传我的项目 【参考方案1】:问题似乎在捆绑包中。
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: String(describing: type(of: self)), bundle: bundle)
有关获取错误日志的更多信息,您可以查看此答案:https://***.com/a/42678873/2000162
【讨论】:
【参考方案2】:请试试这个替换功能
func loadFromNib() -> UIView
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "CustomView", bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
return view
// let nib = UINib(nibName: "CustomView", bundle: Bundle.main)
// let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
// return view
【讨论】:
以上是关于渲染故事板时出现 IBDesignable 错误的主要内容,如果未能解决你的问题,请参考以下文章
将故事板指南标题设置为 @IBInspectable 值,以便快速自定义 @IBDesignable 视图?