问题
对于UITableView, 我们来控制其每个Cell上的分割线距离手机屏幕的距离时, 会用到 setSeparatorInset:方法。而且一般还设置为UIEdgeInsetsZero, 来保证美观。但是升级到XCode6之后,在iOS8后可能会发现没有效果了。
解决方案
首先在viewDidLoad方法中加上如下代码:
- (void)viewDidLoad {
[super viewDidLoad];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}
}
然后在UITableView的代理方法 willDisplayCell中加入如下代码:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
这样就可以正常显示了。