【问题标题】:Custom UIView built with Interface Builder accessible/positionable via Interface Builder使用 Interface Builder 构建的自定义 UIView 可通过 Interface Builder 访问/定位
【发布时间】:2009-11-09 00:11:53
【问题描述】:

这不应该如此令人困惑。我有一个自定义 UIView,上面有一堆控件。 UILabel、按钮等。我使用 Interface Builder 创建了这个 Nib。我希望能够使用界面生成器将此自定义 uiview 放置在另一个 UIView 上。

如何将我的 UIView 自定义类链接到笔尖? initWithCoder 被调用,但我希望这个类从笔尖加载。

谢谢

【问题讨论】:

  • 您找到可接受的答案了吗?请标记一下,谢谢。
  • @JoePasq 你在这里看到任何有效的答案吗?
  • 不幸的是,我实际上从来没有得到这个工作

标签: iphone uiview interface-builder


【解决方案1】:

为此,您必须为使用自定义控件的类的 Interface Builder 创建一个插件。创建并安装插件后,您将能够通过拖放将视图实例添加到另一个窗口或 Interface Builder 中的视图。要了解如何创建 IB 插件,请参阅 Interface Builder Plug-In Programming Guide 和 Aaron Hillegass 的书 Cocoa Programming for Mac OS X 中有关创建自己的 IB Palette 控件的章节。

Herea similar question 已接受答案的原作者的链接。

【讨论】:

  • 从 XCode 4.0+ 开始不支持此功能
【解决方案2】:

如果您希望自定义视图在您使用的笔尖中正确绘制,您只需要制作一个插件。您可以制作一个自定义控件,然后让它显示为一个空白矩形,直到现在在运行期间被实例化。

How do I get a view in Interface Builder to load a custom view in another nib?

【讨论】:

    【解决方案3】:

    您可以使用 Interface Builder 插入 UIViewController 对象,然后设置 UIViewController 的“Nib name”属性。 我不知道这是否会扰乱您的模型,但我认为这是完成您想做的事情的唯一方法。

    【讨论】:

    • 您好,肯尼,感谢您的快速回复。我刚试过。我在主视图中添加了一个 UIViewController,将它的笔尖名称设置为自定义子视图的笔尖,并将 uiviewcontroller 的视图属性连接到界面构建器中的自定义视图。一样。它只是没有出现。在自定义视图上调用 initWithCoder,但没有显示任何内容。
    【解决方案4】:

    在 IB 中打开 Identity Inspector 工具 (Command-4),然后选择您的自定义视图,并在“类”弹出窗口中选择您的自定义类的名称而不是通用 UIView。您可能还想将它连接到 ivar。在您的 ViewController 中声明一个自定义类的实例,并在其前面加上 IBOutlet。然后返回并打开 Connections Inspector 并将您的视图连接到 ivar,方法是从自定义视图的引用出口单击拖动到文件所有者(应该是您的 ViewController 的一个实例)并选择 ivar 名称。

    当您的 NIB 被加载时,它应该创建该类型的对象并将其连接到该变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      相关资源
      最近更新 更多