E-R*_*die 28 interface-builder ios swift ios8
我正在WWDC 2014上观看Session 411的视频,引用" Interface Builder上有什么新内容 ",我正在尝试创建框架,以便让@IBDesignable
类在Storyboard中预览我的更改,而无需运行应用程序.
@IBInspectable
当我将我的类添加到特定视图并使用以下代码正确呈现视图时,属性正确显示:
@IBDesignable
class MyView: UIView {
@IBInspectable var borderColor: UIColor = UIColor.clearColor() {
didSet {
layer.borderColor = borderColor.CGColor
}
}
@IBInspectable var borderWidth: CGFloat = 0 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var cornerRadius: CGFloat = 0 {
didSet {
layer.cornerRadius = cornerRadius
}
}
@IBInspectable var masksToBounds: Bool = false {
didSet {
layer.masksToBounds = masksToBounds
}
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到这些属性被添加到用户定义的运行时属性(在Identity Inspector下).现在我期待的是当我运行代码以保持这些改变时我用特定的视图.
我运行应用程序,视图不加载用户定义的运行时属性,并在输出时给出此错误(不崩溃):
Unknown class MyClass in Interface Builder file
Failed to set (cornerRadius) user defined inspected property on (UIView)
Run Code Online (Sandbox Code Playgroud)
是什么导致应用程序不加载我在Identity Inspector下添加的用户定义的运行时属性?
Kos*_*val 41
代码是正确的.
声明@ IBDesignable
所有@IBInspectable
属性作为用户定义的运行时属性公开给Interface Builder时.
问题 -
Interface Builder文件中的未知类MyClass
是指Interface Builder无法找到某个类.您设置了应用程序中不存在的错误类.
您的customView类MyView
只是在您拥有的Interface Builder中MyClass
修复解决方案 -
MyView
此外,如果您决定删除客户Designable,您应该
Sur*_*gch 23
基于问题标题,一些人可能会遇到一个稍微不同的问题(就像我一样).如果你
然后你可能会得到类似的错误
无法在[您的自定义视图]上设置(xxx)用户定义的检查属性...:此类与密钥[xxx]不符合密钥值编码.
解决方案是删除旧属性.
打开您的类的Identity检查器,在User Defined Runtime Attributes下选择属性名称,然后按减号按钮( - ).
同样,这不是OP问题的答案,但它可能是来到这里的其他人问题的答案.
归档时间: |
|
查看次数: |
23257 次 |
最近记录: |