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
最后:
如果你使用过程中发现不对的地方请多多包涵,也欢迎指出不对之处;也非常欢迎在留言你所遇到的坑!感谢阅读!
声明:
本文属于原创,转载请注明出处!谢谢,如有侵权,请联系删除!谢谢🙏