xib定制類嵌套在另一個xib中的方法
我不是一個經(jīng)常使用xib的人,總感覺xib所見即得,非常簡單,昨天同事在寫一個小demo,就是xib里面嵌套一個xib,期初感覺問題好簡單,但是怎么弄第二個xib的視圖也出不來.于是我翻閱了一些資料,弄了好久才出來的,下面我總結(jié)一下需要注意的問題
有一個類test1 ,對應(yīng)一個test1.xib文件,同時還有一個類test2.對應(yīng)一個test2.xib,然后需求,要求test2作為test1.xib 的 subview.剛開始,我就在test1.xib里面添加一個UIVIew,然后將這個view的類改為test2,結(jié)果test2 不顯示.
原因: 針對一個xib文件作為subview放入另一個xib文件,作為subview的這個xib并不會自動被系統(tǒng)載入內(nèi)存,這就出現(xiàn)了上面的現(xiàn)象,看不到test.xib,所以我們需要手動載入test2.xib,通常在選擇在類test2 中的initWithCoder:(NSCoder)方法中使用[[NSBundle mainBundle] loadNib...],這個方法手動載入test2.xib即可,然后將作為subview添加到當(dāng)前view中.
具體實現(xiàn)級代碼如下:
1 先創(chuàng)建兩個xib文件和關(guān)聯(lián)xib的類 test1 test2 test1.xib 和test2.xib 這個我就不多解釋和操作的
2 關(guān)聯(lián)類 將test1.xib關(guān)聯(lián)test1 ? 注意 test1的子view的類是test2喲 ?
3 這一步是最重要的一步喲 關(guān)聯(lián)test2.xib ?但是不是view了 而是test2.xib中的Files Owner 關(guān)聯(lián)test2 (一定要注意)
3 寫代碼 在跟控制器里
4 在 test1.m文件中 (test1.h中沒有代碼)
5 ?將test2.xib 中的view連線到test2 中 ? 在test2.m中 ?
注意 1 ? 在第3步的時候一定要是files owner 關(guān)聯(lián)test2 ?不然就拖不動test2.xib中的view到test2 中
? ? ? 2 ?一定要加上
這句話 不然約束就會出現(xiàn)比較大的坑
最后給大家一下我的demo連接:git.oschina.net/huanni/xib-in-superXib.git??