【发布时间】:2014-06-26 08:01:10
【问题描述】:
所以我正在实现一个自定义的“选择器”工具栏,就像 iOS 等效的单选按钮集 (UISegmentedControl)。只是一个分为选项的水平条。
为此,我创建了UIControl 的子类SegmentedControl 并实现了自定义绘图。但是,有了这样的观点,我需要设置可用选项的选项。我本可以从控制器的 viewDidLoad() 访问视图并将其设置在那里,但我喜欢使用界面生成器来处理这类东西。
所以我发现了这个奇妙的东西,叫做“用户定义的运行时属性”。我创建了一个带有buttonValues 键的String 属性并设置了一个值(这是一个简单的男性/女性选择器,所以我选择了“男性|女性”)。我发现您可以使用函数self.valueForKey() 访问这些值并传入密钥。我制作了一个解析器将该字符串转换为一个数组,然后为drawRect() 函数添加了功能以使用该数组来设置按钮。
当我运行应用程序时,我收到一个关于“键值编码合规性”的错误。
所以我查了一下,发现这个类必须有支持变量来存储属性。很好,我添加了一个名为buttonValues 的实例变量并将其初始化为""。现在应用程序运行良好,但 self.valueForKey() 函数中的值是空的。我查找了有关如何设置用户定义的运行时属性的教程,但它们没有详细说明。他们谈论的关键值编码合规性就像我应该知道的那样。
我想确切地知道我必须做什么才能使其正常工作,详细说明。
【问题讨论】: