自定義XIB View裏面添加其他自定義Xib View
上週五七秒沒事寫swfit項目的時候,遇到的問題:
在商城訂單評論界面,有服務評論、發貨速度評論、回收價格評論,都是星星評論。
星星界面
不用看大家都知道自定義個cell,就可以了,但是七秒xib自定義哥cell,也自定義了一個
星星的xib
文件,但是就是在顯示的時候出現了錯誤
說一下自己的解決時候遇到的問題##
- 開始的時候給cell上面添加了三個空的view,設置view的custom 位
星星xib
的view,失敗告終,不顯示(原因不清楚,可能是xib加載xml文件時候的問題吧,當cell的xib沒有加載完畢的時候又去加載星星xib
文件了吧) - 根據上一步自己的纔想,七秒就把cell上面空view的
custom
捨棄掉,在cell文件裏面的awakeFromNib()
,方面裏面直接addview添加總可以吧,終於星星顯示出來了,但是空的view的佈局錯誤了,日誌打印一個約束錯誤,設置了一下背景一看,空的view的View確實佈局不對,但是自己在xib文件裏面的佈局明明是對的啊。具體原因七秒真的不知道。有誰明白,可以給七秒說下,七秒感激不盡………………
好了廢話多到這裏吧!
開始正確的實現方法##
- 創建了星星的
AtarView.xib
,並佈局完成
StarView.xib
- 設置view的File's Owner的Custom Class 位我們關聯
StarView.xib
的文件,目的就是讓'StarView.xib'與一個類進行關聯
Paste_Image.png
注意這一步要設置view和
File's Owner
的關聯,讓view有一個關聯類,這樣就可以在這個類裏面脫線了
注意 :這裏設置的Custom Class 位File's Owner 的,而不是我們經常設置view的##
- 就是在關聯的類裏面加載出來這個Xib
Paste_Image.png
- 這樣我就可以在我自定義的 'cell.xib 裏面星星的位置設置下
Custom Class
位StarView就科技加載出來了
Paste_Image.png
最後的效果圖
——————————分割線———————————##
說一說xib加載過程吧,大家都知道加載xib有兩種方法:NSBundle和UINib,說一下這兩個的區別###
NSBundle##
loadNibNamed 的方法是 '即使加載',就是你什麼時候用,我就什麼時候去bundle裏面給你加載,調用的時候,裏面的控件也就初始化完畢。
UINib##
nibName 方法就是:只加載一次,其他的時候,你要使用我就從內存裏面加載,官方也是推薦我們使用這樣的加載方式。所以一些經常使用的xib,我們還是使用UINib的甲方方式吧!
例如:tableView和collection註冊cell,註冊的都是UINib,而並非bundle