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.

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

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

你一定会遇到这样的需求: 使用UITableView来进行数据的展示,要求有分隔线,并且使分割线顶格。。。。 你肯定这么干过 这样... tableView.separatorInset = U...
  • NB_Token
  • NB_Token
  • 2016年07月20日 17:16
  • 3499

设置UITableView分割线的颜色和位置

//设置分割线的颜色 _mainTableView.separatorColor = [UIColor colorWithNumber:DefaultLineColor]; //设置分割线的位置 ...
  • nhfc99
  • nhfc99
  • 2016年03月14日 11:16
  • 6220

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

UITableView的分割线(separator)是私有类,应该是无法获取的。 不过你可以通过tableView的属性修改它: 1 2 3 4 5...
  • tianyitianyi1
  • tianyitianyi1
  • 2015年06月23日 10:22
  • 2990

IOS uitableview中cell的分割线设置距离,并且去掉cell的边框,要不然多了一条细线

IOS uitableview中cell的分割线设置距离,并且去掉cell的边框,要不然多了一条细线这个主要是针对自定义cell的  judgeCell.backgroundView=[[UIVi...
  • woshidaniu
  • woshidaniu
  • 2016年03月06日 01:52
  • 1136

iOS-UITableView 设置分割线长度和颜色

网上了看了好多方法去掉UITableview的分割线以及设置分割线颜色的方法,大多都是在iOS7以后的方法。今天给大家来一个多功能全方位的设置的装逼技能废话不多说,上代码在ios7以前的代码// 设置...
  • whuizhou
  • whuizhou
  • 2016年04月21日 13:55
  • 2311

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

1、UITableViewStylePlain 和 UITableViewStyleGrouped 的细节差异 1)设置了header和footer的时候,如果使用group,头部和尾部会随着tabl...
  • lovechris00
  • lovechris00
  • 2016年05月18日 15:38
  • 2405

设置UITableView的单元格分割线离屏幕左右的距离为0

在开发中,有时候为了界面的美观,需要表示图的分割线左右间距为0,即呈现下面的效果 有时候就直接取消显示表视图的分割线,然后在单元格内直接添加一条直线,这样也能满足要求,还有一种方法是改变表视图内部...
  • Vincent_lhj
  • Vincent_lhj
  • 2016年04月15日 16:05
  • 822

UITableView如何让cell的分割线左边不缩进

在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉。 但是在ios8中,设置set...
  • wei78008023
  • wei78008023
  • 2015年04月07日 17:05
  • 1506

小坑:UITableView分组后最后一根分割线不显示

如图用section分隔开后每个section最后的cell的分割线不见了。分隔的方法是:单独把一个section作为分隔块使用,即:section 0,有cell 2;section 1,没有cel...
  • XieYupeng520
  • XieYupeng520
  • 2016年06月20日 17:18
  • 1236

清除UITableView底部多余的分割线

第一种方法 1、加方法 -(void)setExtraCellLineHidden: (UITableView *)tableView {     UIView *view...
  • l_ch_g
  • l_ch_g
  • 2013年07月10日 14:37
  • 29192
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITableView的分割线长短的控制
举报原因:
原因补充:

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