这几天遇到一个bug,直接上图比较直观。
直接截图,如图是一个tableView .然后里是imageView,titleLabel,subtitleLabel
是自己创建然后添加到cell.contentview上的。label的frame根据需要显示的内容进行计算得到的。是可以正常显示的。
但是在进行多选的时候,会出现一个奇怪的问题,如图中显示,会出现一条横线。因为label是默认没有边框的,所有感觉应该不是label的问题。但是也没有什么思路。通过通过View Hierarchy看了看视图的层级结构也没有发现有什么多余的内容。无奈之下到网上开始查询。
然后搜到一个类似问题。 iOS UILabel 边框出现黑线问题
然后博主给的原因是 在计算每个label 的frame时因为是根据text的文字多少与字体大小有关,造成frame的size 中width 跟height 有小数部分,只要将其width与height改为int类型即可解决改问题。
看着还是觉得疑惑,明明CGRectMake 传参的数据类型是Float 为什么要强转为int呢?
但是按着博主提供的方法,居然解决了我的这个bug。
然后还查到一个解决办法。Cell编辑模式下选中 Cell内图片出现白线。跪求解决方案
这位博主遇到的问题是imageView会出现白线,和我的有点类似。虽然有人给了解决办法但是也没解释原因。设置一下UITableView的allowsMultipleSelectionDuringEditing属性为YES。我试了试也是可以解决的。这个属性设置之后当tableView处于编辑状态时就自动变成多选模式,无论你在代理方法里选择的是什么编辑模式。
虽然解决了这个问题,但是还是一头雾水。而且两个解决方案完全不是一个方向。我感觉是采用了系统的多选,所以有些问题。