gpt4 book ai didi

objective-c - 使用 Interface Builder 嵌套自定义类/XIB

转载 作者:太空狗 更新时间:2023-10-30 03:29:08 25 4
gpt4 key购买 nike

我会尽量缩短。

我编写了一个自定义类,它使用几个 IBOutlet 属性扩展 UIView,并且它有一个与之关联的 XIB,这些 IBOutlet 链接到它。

然后我想学习该类(class),将其嵌入到其他 XIB(例如,表格单元格)中,然后让它正常工作。

似乎当我将该自定义类嵌入到新的 XIB 中时,它无法识别我与之关联的原始 XIB,因此它要求我将 IBOutlets 重置为新 XIB 上的接口(interface)元素。这很蹩脚。

有没有人了解我正在尝试做的事情并且有好的方法?

最佳答案

以下是我如何成功完成这项工作的:

在界面生成器中
打开你的外侧 Nib 并执行此操作:

  • 添加一个 UIView 来定义您希望内部 Nib 显示的空间。
  • 从库中添加一个 UIViewController 对象,将其 Nib Name 属性设置为您的内部 nib 文件的名称(不带扩展名)。
  • 在外部 View Controller 中为这两项创建 IBOutlets 并将它们连接起来。 (我将它们称为 innerViewinnerViewController。)
  • 不要将内部 View Controller 中定义的任何 IBOutlet 连接到外部 nib 文件中的任何内容,让它们保持未连接状态即可。

在 Xcode 中
在外部 View Controller 的 viewDidLoad 方法中,添加以下两行:

[self.innerView addSubview:self.innerViewController.view];
self.innerViewController.view.frame = CGRectMake(0, 0, self.innerView.frame.size.width, self.innerView.frame.size.height);

如果您的外部 Nib 是自定义 UITableViewCell,请将这些行放入您的 awakeFromNib 方法中。

构建并运行!

关于objective-c - 使用 Interface Builder 嵌套自定义类/XIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1750735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com