用Nib(.xib)自定义UIView子视图不加载?
我想创build一个与关联的Nib(.xib)文件的自定义UIView类来帮助布局和创build。
现在,我的自定义视图中没有任何子视图出现,尽pipe它们存在于我的nib文件中,并通过IBOutlets正确连接到我的自定义视图类。
我试着通过下面的其他答案: 使用IB从视图控制器的视图加载XIB自定义UIView
和这一个: 我如何在界面生成器中加载一个自定义视图在另一个笔尖的视图?
和这一个: 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文件的重点是什么?
打开你的任何视图控制器,并将这些代码粘贴到你的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
,而不是在方法中声明。