我会尝试尽可能缩短它的长度。使用界面生成器嵌套自定义类/ XIB
我写了一个自定义类,它用一些IBOutlet属性来扩展UIView,并且在那些IBOutlets链接到它的地方有一个与它关联的XIB。
然后,我想把这个类嵌入到其他一些XIB(例如表格单元格)中,然后让它工作。
看来,当我将该自定义类嵌入到新的XIB中时,它无法识别与其关联的原始XIB,因此它会要求我将IBOutlet重置为新XIB上的界面元素。这是跛脚。
有没有人知道我在做什么,并有一个很好的方法?
我会尝试尽可能缩短它的长度。使用界面生成器嵌套自定义类/ XIB
我写了一个自定义类,它用一些IBOutlet属性来扩展UIView,并且在那些IBOutlets链接到它的地方有一个与它关联的XIB。
然后,我想把这个类嵌入到其他一些XIB(例如表格单元格)中,然后让它工作。
看来,当我将该自定义类嵌入到新的XIB中时,它无法识别与其关联的原始XIB,因此它会要求我将IBOutlet重置为新XIB上的界面元素。这是跛脚。
有没有人知道我在做什么,并有一个很好的方法?
下面是如何设法使这项工作:
在Interface Builder
打开外笔尖和做到这一点:
在Xcode中
在你的外视图控制器的viewDidLoad中方法,添加以下两行:
[self.innerView addSubview:self.innerViewController.view];
self.innerViewController.view.frame = CGRectMake(0, 0, self.innerView.frame.size.width, self.innerView.frame.size.height);
如果你的外笔尖是一个自定义的UITableViewCell,把这些线在你awakeFromNib改为方法。
Build &跑吧!
我假设你只是简单地将UIViews放在一个笔尖中供UIViewController使用,这纯粹是在代码中使用的。苹果称这是一个detached nib file。
按照我指导的链接了解详细信息以及如何使其工作的示例。
关于在Interface Builder中将视图嵌入到另一个视图中,您需要将add a UIView element from the Library插入到父视图中,并且需要set its class in the Inspector。一旦嵌入视图的类被设置,你的IBOutlets应该是可见的。
第一句话并不完全是我在做的。该类本身是一个UIView,它包含一个UIImageView和一个UIActivityIndicator。最后一句话是对的,但不幸的是它行为不正确。它支持IBOutlets。 – 2009-11-17 19:23:56
它在OS X上的工作方式相同,只是用它们的NS对应替换UI类。 – Mark 2013-08-15 17:42:53