2

我正在尝试使用关联的 Nib (.xib) 文件创建自定义 UIView 类,以帮助进行布局和创建。

现在,我的自定义视图中没有子视图出现,即使它们存在于我的 nib 文件中并且通过 IBOutlets 正确连接到我的自定义视图类。

我尝试通过以下其他答案: Load custom UIView with XIB from a View Controller's view using IB

还有这个: 如何在 Interface Builder 中获取视图以在另一个 nib 中加载自定义视图?

而这个: http ://soulwithmobiletechnology.blogspot.com/2011/06/create-uiview-with-nib-file-in-xcode-4.html

但该方法[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]似乎调用-[initWithCoder:],导致无限循环。

请让我知道要包括哪些其他详细信息来帮助解决此错误!

更新1:我需要通过布局我的子视图-[layoutSubviews]吗?我的笔尖文件实际上没有布局吗?如果是这样,那么 nib 文件的意义何在?

4

1 回答 1

4

打开任何视图控制器并将此代码粘贴到您的viewDidAppear方法中:

NSArray * allTheViewsInMyNIB = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]; // loading nib (might contain more than one view)
MyCustomView* problemView = allTheViewsInMyNIB[0]; // getting desired view
problemView.frame = CGRectMake(0,0,100,100); //setting the frame
[self.view addSubview:problemView]; // showing it to user

这就是你所要做的,呈现一个观点。如果你想与这个视图交互——你必须MyCustomView* problemView在你的类的接口中声明,而不是在方法中。

于 2013-10-02T13:56:56.720 回答