http://blog.csdn.net/wei78008023/article/details/44922825
在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉。
但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero 已经不起作用了。
可以用以下方法去除左边的默认缩进:
1.首先在viewDidLoad方法加入以下代码:
- if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
- [self.tableView setSeparatorInset:UIEdgeInsetsZero];
- }
- if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
- [self.tableView setLayoutMargins:UIEdgeInsetsZero];
- }
2. 然后在UITableView的代理方法中加入以下代码
- - (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];
- }
- }
当然,这样做看起来比较麻烦,也会让代码变得不那么简洁,所以建议干脆就把分割线直接隐藏,然后自定义cell的时候自己加上上下边线,这样自由度比较高,想怎修改就完全看自己的喜好了。