UITableView的分割线长短的控制

原创 2016年06月01日 21:58:42

一、遇到问题

当我利用第三方 FPPopoverController 来显示UITableView的时候,cell的分割线左边没有顶满,而右边却顶满了。这样显示很难看。我需要让其左右两边都是未顶满状态,距离是15像素。

二、解决方法

1、在UITableView的viewDidLoad方法中添加以下代码:

// code1
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];
    }

// code2 
    if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
        [self.tableView setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 15)];
    }

2.添加UITableView的一个代理方法:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([cell respondsToSelector:@selector(setSeparatorInset:)])
    {
        [cell setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];
    }
    if ([cell respondsToSelector:@selector(setLayoutMargins:)])
    {
        [cell setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 15)];
    }
}

三、对解决方法的剖析

code1处代码:
定制cell分割线的frame

code2处代码:
-layoutMargins returns a set of insets from the edge of the view’s bounds that denote a default spacing for laying out content.
If preservesSuperviewLayoutMargins is YES, margins cascade down the view tree, adjusting for geometry offsets, so that setting the left value of layoutMargins on a superview will affect the left value of layoutMargins for subviews positioned close to the left edge of their superview’s bounds
If your view subclass uses layoutMargins in its layout or drawing, override -layoutMarginsDidChange in order to refresh your view if the margins change.

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

UITableView指定分割线 并且设置颜色

UITableView的分割线(separator)是私有类,应该是无法获取的。 不过你可以通过tableView的属性修改它: 1 2 3 4 5...

iOS中UITableView分割线左侧顶齐

iOS 7开始UITableView的分割线不在从左侧边界开始了,而是默认空出了一段距离。 如果想要使用默认的分割线而且还要从左侧边界开始的话,有两种解决方式: 1、在tableView的代理方法中设...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

ios开发解决cell的分割线左侧部分缺失的方法

-(void)viewDidLayoutSubviews {          if ([self.tableView respondsToSelector:@selector(setSepar...

UITableViewCell 令人蛋疼的分割线!!!!

你一定会遇到这样的需求: 使用UITableView来进行数据的展示,要求有分隔线,并且使分割线顶格。。。。 你肯定这么干过 这样... tableView.separatorInset = U...

UITableView 调整分割线长度 等不常用属性总结

1、UITableViewStylePlain 和 UITableViewStyleGrouped 的细节差异 1)设置了header和footer的时候,如果使用group,头部和尾部会随着tabl...

UITableview里面对于分割线显示整个屏幕宽度的设置

在viewDidLayoutSubviews对于tableview进行设置 - (void)viewDidLayoutSubviews  {     if ([self.tableview r...

UITableView中cell线条的自定义 表格分割线(swift OC)

2.1通栏设置 通栏即UITableView的线条左右端间距都为0的情况,通栏的设置需要分别设置UITableView及UITableViewCell的layoutMargins属性 第一步设置U...

清除UITableView底部多余的分割线

第一种方法 1、加方法 -(void)setExtraCellLineHidden: (UITableView *)tableView {     UIView *view...

UITableView自定义分割线、改变Header和Footer的背景颜色

自定义分割线 1、去除系统原生separator: self.tableView.separatorColor = [UIColor clearColor];2、在UITableView的协议方法里...

清除UITableView底部多余的分割线

第一种方法 1、加方法 -(void)setExtraCellLineHidden: (UITableView *)tableView {     UIView *view...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)