自定义plain 样式的 tableview,模拟器上不显示分割线,真机上却显示分割线.

一, 经历

1> 自定义plain 样式的 tableview,模拟器上不显示分割线,真机上却显示cell 下面的分割线.

2> 尝试使用表格的separatorStyle属性,尝试失败.尝试使用 grouped 类型的表格,设置 headerview 和 footview 的代理方法或tableFooterView属性都不生效.

3> 同事定位到问题应该出在,已经设置过separatorStyle属性,接着又被系统的某些属性覆盖了,而且没有数据的单元格被系统自动创建了.

4> 同事接着让我①在 viewdidappear 等方法中重新设置separatorStyle属性,并②让tableFooterView属性设置为一个普通的 UIView 控件,结果还真成功了.

代码如下:

 - (void)layoutSubviews{
[super layoutSubviews];
// 重新设置分割线
self.separatorStyle = UITableViewCellSeparatorStyleNone;
}
     // 在构造方法或 viewdidload 方法中添加如下语句
self.tableFooterView = [[UIView alloc]initWithFrame:CGRectMake(, , , )];

二,经验总结

1> 无论什么 bug, 都尽量好好思考其产生的原因.这个 bug 的原因很可能是系统将剩余的没用完的 cell 继续创建下去了,作为tableFooterView了.

2> 多分析,才能提高自己的能力.

上一篇:Protocol Buffers java


下一篇:Lambda类库篇 —— Streams API, Collector和并行