美文网首页
iOS小问题日记01——UITableView分割线问题

iOS小问题日记01——UITableView分割线问题

作者: yingxl1992 | 来源:发表于2016-10-14 11:49 被阅读150次

    今天写一个简单的小例子,用到了UITableView,并且没有自定义分割线,所以反映出了分割线的显示问题(虽然之前好像遇到过,但是已经不记得了。。。)平时开发中都是自定义分割线的,所以也没有发现这个问题。

    在iOS9和iOS10模拟器上,不进行任何设置,显示结果为:
    默认显示.png
    与这个有关系的几个设置
    
        //设置iOS7以上表格分割线边距,与setLayoutMargins:同时存在时,setSeparatorInset:设置生效
        if ([self.mainTableView respondsToSelector:@selector(setSeparatorInset:)]) {
            [self.mainTableView setSeparatorInset:UIEdgeInsetsZero];
        }
    
        //可不设
        if ([self.mainTableView respondsToSelector:@selector(setLayoutMargins:)]) {
            [self.mainTableView setLayoutMargins:UIEdgeInsetsZero];
        }
    
        //设置iOS9以上表格分割线边距
        if ([self.mainTableView respondsToSelector:@selector(setCellLayoutMarginsFollowReadableWidth:)]) {
            [self.mainTableView setCellLayoutMarginsFollowReadableWidth:NO];
        }
    
    具体说明
    1. @property(nonatomic) UIEdgeInsets separatorInset;——UITableView的属性
      iOS7以后,表格的分割线不会占满整个cell,需要通过这个属性来设置默认的边距

    2. @property(nonatomic) BOOL cellLayoutMarginsFollowReadableWidth;——UITableView的属性
      iOS9以后,用于表明cell的边距是根据view的可读区域的宽度设置的。

    可读区域说明:
    @property(nonatomic, readonly, strong) UILayoutGuide *readableContentGuide;
    iOS9以后,UIView引入了这个属性,这个属性为View定义了一个可以放置用于阅读的内容的最佳区域。如果启用 readableContentGuide的话,那么View就会把它作为边缘进行布局。

    1. @property(nonatomic) UIEdgeInsets layoutMargins;——UIView的属性,iOS8+
      就是xib上增加约束时,会出现的relatvie to margin,默认为16或20。(所以,好像和这里没有什么关系,只有在建立约束时不相对于边距就可以了)

    相关文章

      网友评论

          本文标题:iOS小问题日记01——UITableView分割线问题

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