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...

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

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

tableView的cell之间的分割线长度改变方法

我们在做项目中,公司经常会让tableView里面的cell分割线变短或填满整个屏幕宽度,在网上试过了很多种办法,又复杂 又没有什么效果, 有一天研究了下tableView的属性,发现了更直接的办法。...

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

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

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

在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉。 但是在ios8中,设置set...

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

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

关于IOS中通过图片实现动画效果

其实,让图片生成动画特别简单,就是快速轮播一组图片,形成视觉上的动画效果。需要用到的就是UIImageView,并且设置它的一些属性就可行了。包括以前很流行的Tom猫等小游戏,都是可以通过这个来实现。...

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

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

清除UITableView底部多余的分割线

第一种方法 1、加方法 -(void)setExtraCellLineHidden: (UITableView *)tableView {     UIView *view...
  • l_ch_g
  • l_ch_g
  • 2013年07月10日 14:37
  • 28886

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

自定义分割线 1、去除系统原生separator: self.tableView.separatorColor = [UIColor clearColor];2、在UITableView的协议方法里...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITableView的分割线长短的控制
举报原因:
原因补充:

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