前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 中隐藏UITableView最后一条分隔线

iOS 中隐藏UITableView最后一条分隔线

作者头像
Haley_Wong
发布2018-08-22 10:54:06
1.1K0
发布2018-08-22 10:54:06
举报

如何优雅的隐藏UITableView中最后一条分割线? 这个问题是很常见,却又不太容易解决的。 可能通常的做法都是隐藏UITableView的分割线,自定义一条。 最近在使用弹出菜单的时候,同样遇到了这个问题。

需求场景,做一个类似微信公众号,底部菜单弹出的菜单视图。 而这样的菜单中的tableView一般contentSize等于其frame.size,并且tableView的scrollEnabled为NO。

我想了一种方法(创建一个高度为1px的UIView,盖住tableView的底部1px):

UIView *lineView = [self viewWithTag:201];
if (!lineView) { 
    lineView = [[UIView alloc] initWithFrame:CGRectZero];
}
lineView.frame = CGRectMake(5, menuRect.size.height-2, menuRect.size.width - 10, 2);
lineView.tag = 201;
lineView.backgroundColor = [FTPopOverMenuConfiguration defaultConfiguration].tintColor;
[self insertSubview:lineView aboveSubview:self.menuTableView];

然而,作者给出了一个很优雅的做法,只需要添加几行代码即可,关键代码如下:

    if (indexPath.row == _menuStringArray.count-1) {
        menuCell.separatorInset = UIEdgeInsetsMake(0, self.bounds.size.width, 0, 0);
    }else{
        menuCell.separatorInset = UIEdgeInsetsMake(0, FTDefaultMenuTextMargin, 0, 10+FTDefaultMenuTextMargin);
    }

我们只需要在CellForRow方法中判断是最后一个cell,然后将分割线偏移出屏幕外即可。

注意: 经过测试,上面这种设置cell的separatorInset,来让最后一条分割线不显示出来的做法, 对自定义的Cell有效; 对于UITableViewCell,修改了separatorInset,会导致textLabel也随着偏移。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.11.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档