iOS/重新打开软件,屏幕会闪一下tableView设置cell的setSeparatorInset 时闪烁

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];

}

}

你可能感兴趣的:(iOS/重新打开软件,屏幕会闪一下tableView设置cell的setSeparatorInset 时闪烁)