如何在 自定義XIB View裏面添加其他自定義Xib View

自定義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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章