美文网首页
UITableViewCell设置系统分割线左边距

UITableViewCell设置系统分割线左边距

作者: eryuxinling | 来源:发表于2016-09-01 17:48 被阅读77次
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
        if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
            cell.preservesSuperviewLayoutMargins = NO;
           
        }
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
        return cell;
    }
    
    • 然后写代理方法
    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
            [cell setSeparatorInset:UIEdgeInsetsMake(0, 10, 0, 10)];
        }
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsMake(0, 10, 0, 10)];
        }
    
    /*
    // 左右边间距为0
        if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
            [cell setSeparatorInset:UIEdgeInsetsZero];
        }
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    */
    }
    
    iOS 8.0 后才支持
    self.tableView.separatorInset = UIEdgeInsetsZero;
    // 最快捷的方法 --> 在自定义cell中的awakeFromNib:方法中设置
    self.layoutMargins = UIEdgeInsetsZero;
    
    // 万能方法
    // 1.取消系统自带分割线 2.把tableView背景色设置为分割线的背景色 3.重写setFrame
    - (void)setFrame:(CGRect)frame {
    frame.size.height -= 1;
    // 才是真正去给cell赋值
    [super setFrame:frame];
    }
    

    相关文章

      网友评论

          本文标题:UITableViewCell设置系统分割线左边距

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