xib因为其所见即所得,且方便易用,因此,很多个人经常将复用的UI小部件使用xib实现。经过个人的使用发现一些需要特别需要注意的问题。
有一个定制类A,对应一个A.xib文件,同时还有一个定制类B,对应一个B.xib文件。这时有一个需求,类A作为B.xib的subview,通常的做法是在B.xib中添加一个UIView,然后将这个view的定制类从UIView改为类A。这样子在我们的意识中,我们已经将类A设为B.xib的subview,然后觉得已经大功告成了,但是试着运行一下这个程序,你就会发现A.xib根本没有显示出来,这是什么情况呢?
经过查阅开发文档以及写demo的试验,针对我们将一个xib文件作为subview放入另一个xib中的话,作为subview的这个xib并不会自动被系统载入内存,这就出现了上面例子中的看不到A.xib。所以我们需要手动载入A.xib,通常可以选择在类B的initWithCoder:(NSCoder)方法中使用[NSBundle mainBundle] loadNib...]这个方法手动载入A.xib即可,然后将其作为subview添加到当前view中。