3

自定义 UIView 最大的问题是我们在 XIB 中看到的只是一个白色的矩形。

我们根本无法自定义某些属性。例如,如果我们的自定义 subView 有一个标签,那么能够直接在 XIB 中为该标签设置文本是一种很好的选择。

在此处输入图像描述

像 UIButton 这样的东西。

这甚至可行吗?

XIB 设计是否仅仅是捷径,而真正的代码在代码中?

4

3 回答 3

3

不幸的是,没有真正的方法可以在 Interface Builder 的“Attributes Inspector”面板(您捕获的那个)中添加条目,以允许您像对内置 Cocoa 类所做的那样自定义值。


(确切地说,一些博客解释了一些将旧的 Xcode3 插件(能够在 Xcode3 中做到这一点)转换为 Xcode4 插件的方法,但这没有正式记录,而且设置一个需要专用 Xcode 项目的过程非常复杂,只是为了创建您的自定义视图,声明其 IB 调色板,编写一些关联代码并将其嵌入到 xcode 插件中……)


但是,您仍然有一种可能性,即使不是很方便,也可以直接在 Interface Builder 中自定义 XIB 中任何对象的任何属性,而不是通过代码来实现。

只需进入“身份检查器”(属性检查器之前的选项卡Cmd-Alt-3)并使用“用户定义的运行时属性”表来填写您要更改的属性的名称/键路径并指示它们的值。

从 keyPath 自定义 IB 中的值

然而,在实践中,我很少看到它在我使用的 XIB 文件中使用,因为它不如专用的“属性检查器”调色板好,并且您必须在表中键入属性的确切名称才能影响它的价值:没有为您构建的可修改属性列表,面板中有漂亮的文本字段和复选框来帮助您……但它仍然像魅力一样工作!


请随时向 Apple 发送请求(使用他们的反馈工具)以请求此功能,因为您不是第一个希望这可能实现的人,也不会是最后一个请求它的人,所以也许希望 Apple 会收到足够多的请求,他们就会执行它……</p>

于 2012-10-22T23:12:24.503 回答
1

是的,这是可能的。

首先,在您的自定义视图中添加以下属性(猜测您使用 ARC 功能):

@property(nonatomic, strong) IBOutlet UILabel myLabel;

现在,在您的 xib 中,确保主视图是您的自定义视图。在视图中所需的位置添加标签。单击自定义视图,然后使用连接检查器将标签链接到 myLabel。

于 2012-10-22T09:58:28.950 回答
0

故事板/笔尖显示了代码运行之前界面的外观。如果你想在故事板中看到它,你必须在故事板中构建它。如果您有自定义对象,故事板中有一个基本对象可用作占位符,但它不会显示代码中加载的内容。

于 2012-10-22T22:53:46.170 回答