自定义 UIView 最大的问题是我们在 XIB 中看到的只是一个白色的矩形。
我们根本无法自定义某些属性。例如,如果我们的自定义 subView 有一个标签,那么能够直接在 XIB 中为该标签设置文本是一种很好的选择。
像 UIButton 这样的东西。
这甚至可行吗?
XIB 设计是否仅仅是捷径,而真正的代码在代码中?
自定义 UIView 最大的问题是我们在 XIB 中看到的只是一个白色的矩形。
我们根本无法自定义某些属性。例如,如果我们的自定义 subView 有一个标签,那么能够直接在 XIB 中为该标签设置文本是一种很好的选择。
像 UIButton 这样的东西。
这甚至可行吗?
XIB 设计是否仅仅是捷径,而真正的代码在代码中?
不幸的是,没有真正的方法可以在 Interface Builder 的“Attributes Inspector”面板(您捕获的那个)中添加条目,以允许您像对内置 Cocoa 类所做的那样自定义值。
(确切地说,一些博客解释了一些将旧的 Xcode3 插件(能够在 Xcode3 中做到这一点)转换为 Xcode4 插件的方法,但这没有正式记录,而且设置一个需要专用 Xcode 项目的过程非常复杂,只是为了创建您的自定义视图,声明其 IB 调色板,编写一些关联代码并将其嵌入到 xcode 插件中……)
但是,您仍然有一种可能性,即使不是很方便,也可以直接在 Interface Builder 中自定义 XIB 中任何对象的任何属性,而不是通过代码来实现。
只需进入“身份检查器”(属性检查器之前的选项卡Cmd-Alt-3)并使用“用户定义的运行时属性”表来填写您要更改的属性的名称/键路径并指示它们的值。
然而,在实践中,我很少看到它在我使用的 XIB 文件中使用,因为它不如专用的“属性检查器”调色板好,并且您必须在表中键入属性的确切名称才能影响它的价值:没有为您构建的可修改属性列表,面板中有漂亮的文本字段和复选框来帮助您……但它仍然像魅力一样工作!
请随时向 Apple 发送请求(使用他们的反馈工具)以请求此功能,因为您不是第一个希望这可能实现的人,也不会是最后一个请求它的人,所以也许希望 Apple 会收到足够多的请求,他们就会执行它……</p>
是的,这是可能的。
首先,在您的自定义视图中添加以下属性(猜测您使用 ARC 功能):
@property(nonatomic, strong) IBOutlet UILabel myLabel;
现在,在您的 xib 中,确保主视图是您的自定义视图。在视图中所需的位置添加标签。单击自定义视图,然后使用连接检查器将标签链接到 myLabel。
故事板/笔尖显示了代码运行之前界面的外观。如果你想在故事板中看到它,你必须在故事板中构建它。如果您有自定义对象,故事板中有一个基本对象可用作占位符,但它不会显示代码中加载的内容。