iOS Tableview SeparatorInset Cell分割线左对齐

iOS7 以及以前

self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);

但是在iOS7之前是没有这个设置,所以要加下判断。以免程序在iOS7之前的环境下运行崩溃。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);

}

iOS8 设置方法

-(void)viewDidLayoutSubviews {

if ([self.mytableview respondsToSelector:@selector(setSeparatorInset:)]) {

[self.mytableview setSeparatorInset:UIEdgeInsetsZero];

}

if ([self.mytableview respondsToSelector:@selector(setLayoutMargins:)])  {

[self.mytableview setLayoutMargins:UIEdgeInsetsZero];

}

}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

if ([cell respondsToSelector:@selector(setSeparatorInset:)]){

[cell setSeparatorInset:UIEdgeInsetsZero];

}

}

全局设置方法(iOS7 8 9 通用)

[[UITableView appearance] setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

[[UITableView appearance] setSeparatorInset:UIEdgeInsetsZero];

[[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsZero];

if ([UITableView instancesRespondToSelector:@selector(setLayoutMargins:)]) {

[[UITableView appearance] setLayoutMargins:UIEdgeInsetsZero];

[[UITableViewCell appearance] setLayoutMargins:UIEdgeInsetsZero];

[[UITableViewCell appearance] setPreservesSuperviewLayoutMargins:NO];

}

参考博客 http://www.skyfox.org/ios7-tableview-separatorinset-ajust.html

你可能感兴趣的:(iOS Tableview SeparatorInset Cell分割线左对齐)