xib定制类嵌套在另一个xib中的方法
我不是一个经常使用xib的人,总感觉xib所见即得,非常简单,昨天同事在写一个小demo,就是xib里面嵌套一个xib,期初感觉问题好简单,但是怎么弄第二个xib的视图也出不来.于是我翻阅了一些资料,弄了好久才出来的,下面我总结一下需要注意的问题
有一个类test1 ,对应一个test1.xib文件,同时还有一个类test2.对应一个test2.xib,然后需求,要求test2作为test1.xib 的 subview.刚开始,我就在test1.xib里面添加一个UIVIew,然后将这个view的类改为test2,结果test2 不显示.
原因: 针对一个xib文件作为subview放入另一个xib文件,作为subview的这个xib并不会自动被系统载入内存,这就出现了上面的现象,看不到test.xib,所以我们需要手动载入test2.xib,通常在选择在类test2 中的initWithCoder:(NSCoder)方法中使用[[NSBundle mainBundle] loadNib...],这个方法手动载入test2.xib即可,然后将作为subview添加到当前view中.
具体实现级代码如下:
1 先创建两个xib文件和关联xib的类 test1 test2 test1.xib 和test2.xib 这个我就不多解释和操作的
2 关联类 将test1.xib关联test1 注意 test1的子view的类是test2哟
3 这一步是最重要的一步哟 关联test2.xib 但是不是view了 而是test2.xib中的Files Owner 关联test2 (一定要注意)
3 写代码 在跟控制器里
4 在 test1.m文件中 (test1.h中没有代码)
5 将test2.xib 中的view连线到test2 中 在test2.m中
注意 1 在第3步的时候一定要是files owner 关联test2 不然就拖不动test2.xib中的view到test2 中
2 一定要加上
这句话 不然约束就会出现比较大的坑
最后给大家一下我的demo连接:git.oschina.net/huanni/xib-in-superXib.git
网友评论