UIView 和 XIB 连接。正在显示吗?
Posted
技术标签:
【中文标题】UIView 和 XIB 连接。正在显示吗?【英文标题】:UIView and XIB connections.Displaying it? 【发布时间】:2011-10-17 03:18:05 【问题描述】:如何在 UIView 上显示 XIB/NIB 文件?我已经搜索过,但没有找到。我想在主视图上显示 xib 界面,我有五个 xib 文件,我需要每个一个显示在 UIView 上!有些人谈到了这段代码,但我在哪里实现:
NSArray *screens=[[NSBundle mainBundle] loadNibNamed:@"JaneiroClass" owner:self options:nil];
[self addSubview:[screens objectAtIndex:0]];
【问题讨论】:
【参考方案1】:这将从 XIB 加载视图。 UINib 还缓存,因此您可以快速删除它们。
UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil];
UIView *myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];
instantiateWithOwner 返回 XIB 中***对象的数组。在上面的例子中,只有一个视图(上面有库中的其他对象),所以我们检索了 objectAtIndex:0。
获得视图后,您可以将其添加到其他视图。例如,您可以在传递以下内容的另一个视图上调用 addSubView:
[someView addSubView:myView];
【讨论】:
你能不能说的具体点,我很困惑! @bryanmac 这非常很有帮助。谢谢。【参考方案2】:我在我的博客http://effectivemobility.blogspot.com/2011/05/using-custom-cells-in-your-uitableview.html 中发布了一篇关于从 nib 加载自定义视图的文章
关键部分是这个方法
+ (id)customViewForClass:(Class)customClass
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(customClass) owner:nil options:nil];
for ( id currentObject in topLevelObjects )
if ( [currentObject isKindOfClass:customClass] )
return currentObject;
return nil;
【讨论】:
拜托,你举了一些例子,但是我如何在 UIView 中显示 xib?以上是关于UIView 和 XIB 连接。正在显示吗?的主要内容,如果未能解决你的问题,请参考以下文章