如何实现微信列表(tableView)分割线效果

2017年1月5日
一.如何实现微信列表(tableView)分割线效果:除最后一个cell的分割线不偏移,其它cell分割线都偏移15
(默认分割线和自定义分割线,原理其实类似。本例由于用的是点三方库文件,所以是默认分割线)<我们一贯保留不到万不得已不修改第三方库代码的原则>)

效果如下:

Paste_Image.png

法1(推荐):直接在tableview将要显示的接口(不建议在画cell的接口地方修改,可能会有多种cell类型判断)

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row == [self.recentSessions count] - 1) {
        //如果是最后一个,不偏移
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
        if ([cell respondsToSelector:@selector(setSeparatorInset:)]){
            [cell setSeparatorInset:UIEdgeInsetsZero];
        }
    }else{
        //其他  还原(其实ios8 默认会有15的分割线)
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 0)];
        }
        if ([cell respondsToSelector:@selector(setSeparatorInset:)]){
            [cell setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)];
        }
    }

}

法2:通过移除最后一个cell的分割线,添加底部视图实现。【自定义分割线的cell可以用如下方法(系统默认的还没试成功)】

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
    return 0.5;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
    UIView *bgv = [[UIView alloc]initWithFrame:CGRectMake(0, 0, HHBWIDTH, 0.5)];
    bgv.backgroundColor = [UIColor lightGrayColor];

    return bgv;
}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row == [self.recentSessions count] - 1) {
        //如果是最后一个,
        //自定义cell隐藏分割线
        [self hideSeparator];

    }else{
        //其他  还原(其实ios8 默认会有15的分割线,)http://stackoverflow.com/questions/25770119/ios-8-uitableview-separator-inset-0-not-working
       [self resetSeparator];
    }

}

- (void)hideSeparator
{}
- (void)resetSeparator
{}

如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,732评论 1 9
  • 觉得自己一直是个逃兵,尤其在感情上!如果发生变故,自己都想下意识的躲开!躲开伤害和争吵,还有无理取闹。自己也是个自...
    花样儿阅读 148评论 0 0
  • 思考是极费脑子的活,除非是天才的思想家。思考对于他们来说犹如家常便饭。 可对于常人来说,宁可在体力上多付出,也不愿...
    望风侠阅读 686评论 6 5
  • 粳米粉:280克 红糖:30克 细砂糖:70克 食用碱:5克 热水:380克,根据情况以上之后还要再增加 1. 热...
    F怡然自得阅读 1,384评论 0 0