1. 程式人生 > >對於iOS 7 之後UITableViewCell左側預設15畫素的留白解決方法

對於iOS 7 之後UITableViewCell左側預設15畫素的留白解決方法

開發筆記:

對於iOS 7 之後UITableViewCell左側預設15畫素的留白解決方法:

ios7中,UITableViewCell左側會有預設15畫素的空白。這時候,設定setSeparatorInset:UIEdgeInsetsZero 能將空白去掉。

但是在ios8中,設定setSeparatorInset:UIEdgeInsetsZero 已經不起作用了。下面是解決辦法

首先在viewDidLoad方法加入以下程式碼:

 if ([self.tableViewrespondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableViewsetSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableViewrespondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}

然後在UITableView的代理方法中加入以下程式碼

- (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell *)cellforRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([cellrespondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cellrespondsToSelector:@selector(setLayoutMargins:)]) {
[cellsetLayoutMargins:UIEdgeInsetsZero];
}
}