iOS Tableview SeparatorInset Cel

作者: 旺仔爸 | 来源:发表于2015-12-08 12:05 被阅读3280次

    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 Cel

      本文链接:https://www.haomeiwen.com/subject/agyehttx.html