zoukankan      html  css  js  c++  java
  • tableview分割线

    默认分割线,左边不到屏幕;

    TableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

    三种结构体样式: 
    /** 
    UITableViewCellSeparatorStyleNone, 没有分割线 
    UITableViewCellSeparatorStyleSingleLine, 单线(默认) (左边不到屏幕)
    UITableViewCellSeparatorStyleSingleLineEtched 内嵌线 (左边到屏幕)
    */


    分割线从边界开始方法一:
    - (void)viewDidLoad {
        [super viewDidLoad];
       ...
       ...
       ...
    #pragma mark - a 调整view边距
        // 1.调整(iOS7以上)表格分隔线边距
        if ([self.MyTableView respondsToSelector:@selector(setSeparatorInset:)]) {
            self.MyTableView.separatorInset = UIEdgeInsetsZero;
        }
        // 2.调整(iOS8以上)view边距(或者在cell中设置preservesSuperviewLayoutMargins,二者等效)
        if ([self.MyTableView respondsToSelector:@selector(setLayoutMargins:)]) {
            self.MyTableView.layoutMargins = UIEdgeInsetsZero;
        }
    
    }
    
    #pragma mark - b 调整view边距
    //然后在willDisplayCell方法中加入如下代码:
    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    #pragma mark - b
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    }

    方法二:

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    ...
    ...
    ...
    #pragma mark - a 调整view边距
        //1.调整(iOS8以上)tableView边距(与上面第2步等效,二选一即可)
        if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
            cell.preservesSuperviewLayoutMargins = NO;
        }
        //2.调整(iOS8以上)view边距
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
        return cell;
    }
    
    #pragma mark - b 调整view边距
    //然后在willDisplayCell方法中加入如下代码:
    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    #pragma mark - b
        if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
            [cell setSeparatorInset:UIEdgeInsetsZero];
        }
    }

    方法三:

    系统自带的cell的分割线,满足我们大部分的需求,但在有些情况下,我们需要使用样式二中得cell的分割线样式。 
    同时,我们也可以自定义cell的分割线。通过1个像素宽的图片或者view添加到cell中; 
    或者设置背景图片为灰色,同时设置cell之间的间距为1个像素即可实现;

     
  • 相关阅读:
    边工作边刷题:70天一遍leetcode: day 95
    边工作边刷题:70天一遍leetcode: day 96-2
    边工作边刷题:70天一遍leetcode: day 96-1
    边工作边刷题:70天一遍leetcode: day 96
    边工作边刷题:70天一遍leetcode: day 97-3
    边工作边刷题:70天一遍leetcode: day 97-2
    边工作边刷题:70天一遍leetcode: day 97-1
    边工作边刷题:70天一遍leetcode: day 97
    边工作边刷题:70天一遍leetcode: day 40
    边工作边刷题:70天一遍leetcode: day 41-3
  • 原文地址:https://www.cnblogs.com/OIMM/p/8989299.html
Copyright © 2011-2022 走看看