1.一個xib 創建多個 cell 加載時錯誤
錯誤:
reason: 'unable to dequeue a cell with identifier XXCellZero - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
解決方法:
1.1.在XXcell.h 文件中聲明創建方法:
1.2 .在XXcell.m?文件中實現該方法:
注意:一定要通過?dequeueReusableCellWithIdentifier:進行復用,不可通過復用xib 方法復用:dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath?
2. 一個xib 創建多個 cell ?拖線的按鈕事件不觸發,斷點不走
2.1. 檢查按鈕是否被父控件覆蓋或者被不可點擊的空間覆蓋,解決方法:在xib中調整控件位置就行。
2.2. 檢查xib 是否是tableviewCell 類型,而不是普通view
2.3. 檢查所連接的線是否是對應當前cell 上的控件:
錯誤映射:
解決錯誤映射:
1.把不對應的映射去掉
2.把對應的映射連接上去:連接的時候注意的是,不要使用:按control 鍵 + 鼠標拖線 (?)如下圖:
3.xib 動態約束設置
我們有時候要做動態約束,我們可以不設置label 的寬和高,也不會報錯,但是我們可能會遇到限制它最大寬度的時候怎么辦呢?連接最右邊的約束,然后找到該約束,雙擊它,然后到達下面??的圖:然后改Relation : 選最后一個就行,(也就是 大于等于的意思,小于等于作用相反,如果我們的文字從右邊對齊的話就用它了)
其他錯誤:
1.xib不能拖線,查看xib 的 class 是否 是當前類
2.如果都對,清除緩存
4.xib 能顯示,控件都為空nil ,查看關聯對象是否正確
5.xib 創建的view,600 * 600 不自動布局,xib 比例適配
2018.12.10 :突然發現了這個問題的另一原因:我們創建一個(控制器和控制器xib), 然后通過 addSubView: 的方式添加到當前控制器的時候,這個xib 也會出現這樣的問題。然而通過 push 或 modal 的方式卻不會,我猜想是(?push 或 modal?)已經給控制器 view 設置了 size,而我們?addSubView: 時卻沒有。
解決辦法是:addSubView:的時候,先給控制器的view 設置size,即可
本來xib 默認就是600 x 600, 然后呢,有人說是sizeclass 在作怪,但是好像我試了還是不行,后面是通過,布局子控件的比例相對于xib 本身的比例布局,然后也可以完美適配。創建該view的時候手動布局以下它的布局,用setNeedsUpdateConstraints 更新一下它子控件的約束即可。約束如圖:
6.xib 截圖不能截到它上面的圖
解決:查看該圖是否是它的子圖,或打斷點看看它是否有該圖
7.xib 有多個動態變化的 Label
8.xib 某個控件背景圖,隨著文字縮放(建議使用Button)效果如圖:
如何設置:設置Button的 contentInsets
9.xib 做tableHeaderView 但是和cell 重疊?
解決:1.查看headerView 是否是設置了frame,因為header沒有高度
? ? ? ? ? ? 2.給xib 一個height 約束
? ? ? ? ? ? 3.或者設置它的Autoresizing?
? ? ? ? ? ??
最后:
? 如果你使用過程中發現不對的地方請多多包涵,也歡迎指出不對之處;也非常歡迎在留言你所遇到的坑!感謝閱讀!
聲明:
本文屬于原創,轉載請注明出處!謝謝,如有侵權,請聯系刪除!謝謝??