使用以下内容我可以创建一个视图,然后将一个nib加载到其中:
CGRect newViewRect = CGRectMake(0, self.view.bounds.size.width - 335, 335, 400);
UIView *newView = [[UIView alloc] initWithFrame:newViewRect];
newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];
以下是问题,当我的xib文件已经包含UIView
时,XCode仅记录" lldb",但是如果我删除UIView
,请说明在xib文件中并添加任何其他对象,它显示完全正常。
但是由于我想要加载整个UIView
内的所有内容,我更愿意找到一种方法来加载带有UIView
的笔尖。
感谢您的帮助。
答案 0 :(得分:0)
使用时
newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];
此代码通过nib文件的内容重新加载UIView变量“newView”。因此,在此代码范围之前创建UIVew变量是毫无意义的。
如果您的视图是合成的。只需通过自定义类继承UIView,然后为每个复合添加IBOutlet,然后使用这些复合创建xib,并将它们连接到IBoutlets。然后就像上面那样加载xib。
newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];
或者为了在没有子类化的情况下访问复合材料,您只需使用subViews的标签即可。在xib中为每个视图设置标签,然后通过[view viewWithTag:tag]访问它们;