-1

使用以下内容我可以创建一个视图,然后将一个笔尖加载到其中:

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”,但是假设我删除UIViewxib 文件中的 并添加任何其他对象,它显示得非常好。

但是因为我想加载整个UIView里面的所有东西,我更喜欢找到一种方法来加载 nib 的UIView.

谢谢你的帮助。

4

1 回答 1

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] 访问它们;

于 2013-07-26T12:19:39.983 回答