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

推荐阅读更多精彩内容

  • 最近真的发生了很多事情。那些琐碎像蛆一样黏黏地盘食在你的小腿。你感受不到很大的痛感,但是恶心得让你忍不住挣扎,越挣...
    南有红豆阅读 42评论 0 1
  • 文/她心理 作为一个资深学渣,笔者自认为还是很有发言权的。而且,鉴于百度百科上,关于学渣和学霸的描述篇幅来看,我们...
    她心理阅读 859评论 1 16
  • 林肯公园主唱查斯特最近自杀,很多歌迷叹息不已。有媒体分析,查斯特的自杀与他的好友Chris Cornell有关,因...
    兰启昌阅读 202评论 0 0
  • 简易的梦只有在复杂的夜晚出现,定格的记忆里装满了秘密,河边的风猛烈的吹,模糊了视线,播放的音乐调动了情绪,紧拽的手...
    泽莫阅读 18评论 0 0