gpt4 book ai didi

ios - 无法在 (UIView) 上设置 (cornerRadius) 用户定义的检查属性

转载 作者:IT王子 更新时间:2023-10-29 05:05:14 25 4
gpt4 key购买 nike

详情

我正在观看 2014 年 WWDC 第 411 次 session 的视频,其中提到“Interface Builder 的新功能”,我正在尝试如何创建框架以便创建 @IBDesignable 类来预览我在 Storyboard 中的更改,而无需运行应用程序。

@IBInspectable 当我将我的类添加到特定 View 并使用以下代码正确呈现 View 时,属性正确显示:

代码

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

日志

我注意到这些属性被添加到User Defined Runtime Attributes(在Identity Inspector 下)。现在我期望的是当我运行代码以保留我在特定 View 中所做的这些更改时。

我运行应用程序,但 View 未加载用户定义的运行时属性,并在输出时给出此错误(不是崩溃):

Unknown class MyClass in Interface Builder file
Failed to set (cornerRadius) user defined inspected property on (UIView)

问题

是什么导致应用程序无法加载我在 Identity Inspector 下添加的User Defined Runtime Attributes

最佳答案

代码正确。
当您声明一个 @IBDesignable 时,所有 @IBInspectable 属性都作为用户定义的运行时属性公开给 Interface Builder。

问题 -

Unknown class MyClass in Interface Builder file

这意味着 Interface Builder 找不到某个类。您设置了您的应用中不存在的错误
您的 customView 类是 MyView 但在 Interface Builder 中您有 MyClass

enter image description here

解决方案-

  • 在 Interface Builder 中设置正确的类,在你的例子中是 MyView
  • 检查可设计状态。它应该是 最新的 ,如果不是,那就是有问题了。

enter image description here

此外如果您决定删除客户可设计的,您应该

  • 删除自定义类
  • 删除用户定义的运行时属性

enter image description here

关于ios - 无法在 (UIView) 上设置 (cornerRadius) 用户定义的检查属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com