IB的设计时属性?

时间:2010-05-09 15:03:42

标签: iphone xcode interface-builder

从.NET世界进入ObjC和iPhone开发,我习惯为我的UI类提供设计时支持。例如,假设我有一个带有color属性的自定义按钮类。我希望能够在IB的设计时间内设置这种颜色。我怎么能做到这一点?它甚至可能吗?值得努力吗?

5 个答案:

答案 0 :(得分:2)

无法为iOS创建自定义IB插件。您可以做的最好的事情是在您的笔尖中使用带有自定义类的通用UIView并以编程方式设置属性。

答案 1 :(得分:1)

您通常会为其创建一个IBPlugin,它可以包含一个自定义元素或整个集合。

Interface Builder Plug-In Programming Guide(官方指南)

Custom views in Interface Builder using IBPlugins(非正式教程)
(本教程可以帮到你!它涵盖了IB中的自定义属性设置。)

但请注意:Xcode 4 does not support custom built IBPlugins!
(遗憾的是,对于Gold Master来说,这仍然适用。希望一旦NDA解除,就会有官方/本地解决方案。在此之前,请确保在安装任何Xcode 4副本之前备份您的IB。)

答案 2 :(得分:1)

在等待“用户定义的运行时属性”功能得到更广泛支持的同时,您仍然可以使用UIView的“tag”属性。这只是一个整数,但您可以将其用作字典中的键以访问其他属性。因此,例如,在JSON文件中定义您的设计时属性,将其加载到NSDictionary中,并在运行时遍历视图层次结构,应用您定义的属性。

这不是理想的,但总比没有好,或者只是为了使用自定义字体或其他任何东西而实现大量的自定义类。

答案 3 :(得分:0)

这实际上很容易做到。在InterfaceBuilder中,选择按钮并打开Attribute Inspector(热键:[command] + 1)。选择“属性检查器”窗口顶部的第一个选项卡,然后查看标题为“视图”的部分。标有“背景”的条目旁边会有一个彩色矩形,可能会对角线分割,半黑色和半白色。这表明按钮的背景当前是透明的。单击该矩形,将出现颜色选择框。不要忘记更改颜色选择框中“alpha”滑块的值,否则按钮将保持完全透明。

Here's an image of the attribute inspector, configured like I described

答案 4 :(得分:0)

对于任意类型(例如NSColor属性),Interface Builder插件是您唯一的选择,正如其他人提到的那样。

但是,对于某些有限的类型,有一个更简单的解决方案。如果您的自定义属性是字符串,数字基元或布尔值,则可以使用Interface Builder中的“Runtime Attributes”检查器在设计时定义这些属性。

但是,我发现你的questoin上有'iphone'标签。目前iOS上没有运行时属性。