cell的setSeparatorInset 时闪烁
在做项目时真机测试时遇到了一个问题,当点击HOME键后,重新打开软件,屏幕会闪一下,然后没任何报错,怀疑时获取完数据后是不是Tableview刷新导致的,然后调试了不是,后来想到如果在刷新时创建新的视图有可能也会导致刷新,后来发现也不是,然后将代码一部分一部分筛查才发现在cellForRowAtIndexPath方法中创建cell的时候加了[cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, MAXFLOAT)];去掉就不会闪烁了.具体原因我也没弄懂,估计在设置cell缩进的时候进行页面刷新了,如果有知道的朋友可以给我留言,大家学习一下.当然
iOS 7下
想要设置cell的分割线缩进为0,在iOS7中只用简单的设置cell的separatorInset = UIEdgeInsetZero;
iOS 8下
在iOS8下,上面的方法就不行啦,
//Setup your cell margins:
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// Remove seperator inset
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
// Prevent the cell from inheriting the Table View's margin settings
if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
[cell setPreservesSuperviewLayoutMargins:NO];
}
// Explictly set your cell's layout margins
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}