gpt4 book ai didi

ios - 用户定义的运行时属性中的关键路径是什么?

转载 作者:技术小花猫 更新时间:2023-10-29 10:31:21 25 4
gpt4 key购买 nike

我继承了一个项目,但我对某个键是什么感到困惑。我的问题是,styleName key Path 是什么?它是 View 的属性吗?我如何找出可用的关键路径?

例如,在我从 Storyboard中选择一个 UILabel 之后,我检查了身份检查器,并在用户定义的运行时属性中看到了以下内容:

enter image description here

我尝试打开 main-styles.plist 文件但不确定它是如何链接在一起的。

当我点击属性检查器时(同时仍然保持 Storyboard中的 UILabel 突出显示),它看起来像这样:

enter image description here

最佳答案

有一个NSKeyValueCoding protocolUIKit 中的许多对象都符合。

NSKeyValueCoding 中的方法之一是 valueForKey:(以及许多其他相关方法,请查看我链接的文档)。

通过在对象上调用 valueForKey:,我们可以在运行时访问在界面构建器上设置的属性。

因此,例如,在这个标签上,我可能会这样做:

objective-c :

NSString *style = [myLabel valueForKey:@"styleName"];

swift :

let style = myLabel.valueForKey("styleName")

现在我可以获取通过 Interface Builder 设置的值,在运行时,我可以根据此处设置的值对标签执行某些操作。例如,在这里,我可能会使用特定的“样式名称”以特定的方式设计标签。

如果您在项目中搜索 valueForKey"styleName",您可能会找到使用此属性的位置以及使用它完成的操作。


为了跟进我关于属性检查器的问题,从 Xcode 6 开始,我们可以使用 @IBInspectable 属性来创建将显示在属性检查器 (as seen here) 中的属性。考虑这个 UIView 扩展:

extension UIView {
@IBInspectable var borderColor : UIColor? {
set (newValue) {
self.layer.borderColor = (newValue ?? UIColor.clearColor()).CGColor
}
get {
return UIColor(CGColor: self.layer.borderColor)
}
}
}

现在,如果我们查看 Storyboard中任何 UIView(或子类)的属性检查器,我们将看到:

enter image description here

我们现在有一个“边框颜色”属性,可以通过属性检查器使用,这通常不存在。我指出这个工具的原因是因为每当你通过属性检查器设置这些属性之一时,你设置的值实际上存储为这些“用户定义的运行时属性”之一:

enter image description here

每当从我的应用程序中的 XIB 加载此 View 时,首先发生的事情之一就是我的 borderColor 属性将设置为我在界面中选择的红色生成器。

关于ios - 用户定义的运行时属性中的关键路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089193/

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