如何创建可在IB中拖放的可重用UIView



我正在使用XCode 4.5。对于我当前的项目,我需要构建一个类似于文本字段的UI元素。因为我必须在一大堆ViewControllers中重用这个自定义元素,所以我正在寻找一种方法来构建这个自定义文本字段,这样我就可以使用它进行拖动;放入XCode接口生成器,而不是仅通过编程方式添加它(这就是我迄今为止发现的)。

我怎样才能做到这一点我正在寻找一个教程,在一个简单的示例项目中解释整个过程

规格:

我想要的结果是拥有一个自定义的UIView,我可以像使用其他预定义的UI元素一样使用它(例如文本字段)。这意味着我希望能够拖动&将它从对象库中放入故事板中的某个控制器中,使用属性检查器编辑其属性,尤其是自定义属性,并在IB中获得有关更改的视觉反馈。我不想一次又一次地对预定义的UIViews进行子类化,原因有二:

  1. 首先,向预定义的UI元素添加自定义的子类意味着更多的工作,因为我需要对每个需要自定义的元素重复一遍。或多或少,我的应用程序的整个视觉部分将是自定义UI元素的构建,以匹配我必须为客户端实现的特定设计
  2. 其次,更重要的是,如果我通过在应该包含自定义功能的子类中自定义UI的外观,以编程方式构建它的最大部分,我真的不知道我的UI最终会如何显示
  3. 最后,我认为通过在控制器部分生成程序的静态UI部分来打破iOS SDK提供的漂亮的MVC分离是一种糟糕的编码实践,这些静态UI部分在运行时永远不会以编程方式更改

这就是为什么我需要设计一个自定义UI元素(让我们将其称为相应的类UITextFieldCustom),我可以在设计UI的过程中使用它,就像任何其他预制库对象(如文本字段)一样。这可能吗?

这需要一个接口生成器插件(IBPlugin)。不幸的是,在Xcode 4中放弃了对此的支持,但在Xcode 3中仍然存在。似乎该功能的文档也已从苹果开发者库中删除。使用IBPlugin实现的自定义控件示例可以在http://www.brandonwalkin.com/bwtoolkit/.

你可以简单地复制粘贴它,在IB中选择你的uiview,按CMD+C,然后转到你想粘贴它的其他nib文件,点击一个空白区域,按CMD+V

正如"titaniumdecoy"所指出的,这里有一个很好的解决方案:将内置类型拖动到情节提要中,例如文本字段。然后在实用程序栏的标识检查器中定义自定义类,例如MyTextField。

最新更新