我正在为我正在创建的iPhone应用创建自定义视图。此自定义视图是一个Popover对话框,它由一个包含两个图像的UIView,一个用于关闭对话框的按钮,一个标签和一个UIScrollView组成。此视图名为MDPopoverCard。我将这些文件作为我观点的一部分:
MDPopoverCard.xib - The view as drawn up in Interface Builder.
MDPopoverCard.h - Defines a few IBActions and some other properties
MDPopoverCard.m - Implements some functions defined in the header
这就是Interface Builder中的样子:http://cl.ly/2B0f2x3s1w1i0K2G0Q1r(对不起,我还不能发布图片,因为我是stackoverflow的新手)
我的.m和.h文件中定义了一些属性,用于控制是否显示绿色按钮以及标题标签的文本是什么。
我需要在我的应用中显示一些这些对话框,我想重用我设计的这个界面。我希望能够通过Interface Builder将按钮和其他表单元素添加到UIScrollView中。但是,我有一个问题:
想象一下,我在Interface Builder中有另一个视图。我添加了一个UIView并将其类设置为MDPopoverCard。然后我将几个UIButton对象拖到我的MDPopoverCard视图中。以下是Interface Builder中的示例:
http://cl.ly/1X090h1t1q3f0i3E0917
此屏幕截图显示了我添加了MDPopoverCard的另一个视图(根视图)。然后我添加了两个按钮作为MDPopoverCard的子视图。
这些按钮可以在Interface Builder中正确嵌套。但是,当我运行我的应用程序时,这些按钮会添加之前组成我在xib文件中的MDPopoverCard视图的任何项目。这意味着按钮正在后面添加我的弹出框对话框。这是第一个问题。
第二个问题是我希望将这些按钮和表单元素实际添加到MDPopoverCard视图中包含的UIScrollView中,而不是直接添加到UIView的子视图数组中。有没有办法在Interface Builder中指定它?我真的更喜欢在我的UIView中绘制按钮并通过Interface Builder将它们连接到IBActions,而不是手写我可能需要显示的这些对话框的每个实例(几个)。
有什么建议吗?我能做些什么来澄清这个问题吗?
感谢您的帮助!
答案 0 :(得分:0)
以前Xcode支持自定义UI元素的用户定义的IB插件,您可以像使用内置小部件一样拖放到XIB中。从Xcode 4开始,这个不错的功能已被删除。 (非常感谢,Apple。)
目前我只能想到一种实现你所描述内容的黑客方法。我要做的是以下几点:
IBOutletCollection
上创建MDPopoverCard
,例如embeddedControls
awakeFromNib
中实施MDPopoverCard
并明确将embeddedControls
中所有观看次序的超级视图重置为希望这会有所帮助(虽然我没有尝试过)。