使用以下操作,我可以创建一个视图,然后将笔尖加载到其中:
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",但假设我删除xib文件中的UIView
并添加任何其他对象,它显示得非常好。
但由于我想加载整个UIView
,其中包含所有内容,所以我更喜欢找到一种方法来加载带有UIView
的笔尖。
谢谢你的帮助。
使用时
newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];
这段代码根据nib文件的内容重新加载UIView变量"newView"。因此,在这个代码范围之前创建UIVew变量是没有意义的。
如果您的视图是合成的。只需通过自定义类将UIView子类化,然后为每个组合添加IBOutlet,然后用这些组合创建xib,并将它们linq到IBoutlets。那么也只加载xib。
newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];
或者,要在不进行子类化的情况下访问组合,您只需使用subViews的标记即可。在xib中为每个视图设置标签,然后通过[view-viewWithTag:tag]访问它们;