一、问题描述

在学习和开发中经常会遇到下面的问题,UITableView的UITableViewCell很少或者没有时,但UITableView有很多的空白行分割线。如下图:

如何去掉UITableView多余的空白行分割线?

二、问题分析

方法一:隐藏UITableViewCell自带的分割线,然后自定义分割线到UITableViewCell。自定义分割线的方法有很多种,可以自行查找。

方法二:很简单,修改tableFooterView。创建frame为CGRectZero的UIView,赋值给tableFooterView。

二、问题解决

1.自定义分割线

列举自定义分割线的其中一种方法。

步骤一:全局设置UITableViewCell系统自带分割线“隐藏”,这个“隐藏”只是把分割线颜色设置为透明。这样做目的是为了保持自定义分割线frame和系统自带的分割线一样。如果不想一样,可以真正隐藏。

 -(void)viewDidLoad
{
//设置分割线的风格
self.tableViewCategory.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
self.tableViewCategory.separatorColor = [UIColor clearColor];
self.tableViewList.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
self.tableViewList.separatorColor = [UIColor clearColor];
}

步骤二:在UITableViewCell

 // 自绘分割线
- (void)drawRect:(CGRect)rect
{
//获取cell系统自带的分割线,获取分割线对象目的是为了保持自定义分割线frame和系统自带的分割线一样。如果不想一样,可以忽略。
UIView *separatorView = [self valueForKey:@"_separatorView"];
NSLog(@"%@",NSStringFromCGRect(separatorView.frame));
NSLog(@"%@",NSStringFromCGRect(rect));
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:232/255.0 green:232/255.0 blue:232/255.0 alpha:1].CGColor);
//CGContextStrokeRect(context, CGRectMake(0, rect.size.height - 1, rect.size.width, 1));
CGContextStrokeRect(context, separatorView.frame);
}

效果:

2.修改tableFooterView

  self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

效果:

去掉UITableView多余的空白行分割线的更多相关文章

  1. 去掉UITableView多余的分割线

    UIView *v = [[UIView alloc] initWithFrame:CGRectZero]; [_tableView setTableFooterView:v];

  2. 拼接字符串去掉最后多余的串,JSON的遍历

    一.遍历json change_url: function(key, value){ condition[key] = value; var string_url = "?"; f ...

  3. 去掉UItableview headerview黏性(sticky)

    // 去掉UItableview headerview黏性(sticky) - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFlo ...

  4. 去掉UItableview headerview黏性

    //去掉UItableview headerview黏性 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView ...

  5. 去掉UITableView HeaderView或FooterView随tableView 移动的黏性

    去掉UITableView HeaderView或FooterView随tableView 移动的黏性(sticky) 控制器中实现以下方法即可: - (void)scrollViewDidScrol ...

  6. iOS设置tableViewCell之间的间距(去掉UItableview headerview黏性)

    经常在项目中遇到自定义cell的情况,而且要求cell之间有间距,但是系统没有提供改变cell间距的方法,怎么办? 方法1:自定义cell的时候加一个背景View,使其距离contentView的上下 ...

  7. UITableView当数据很少的时候,去掉多余的cell分割线

    转自:http://www.cnblogs.com/bucengyongyou/archive/2012/10/15/2723814.html 在tableView初始化的时候 UIView *v = ...

  8. 隐藏UITableView多余的分割线

    先看看没有隐藏是什么效果以及代码是什么情况,这样更加直观

  9. 去掉uitableveiw多余的分割线

    UIView *v = [[UIView alloc] initWithFrame:CGRectZero]; [_tableView setTableFooterView:v];

随机推荐

  1. Windows phone应用开发[20]-禁止Pivot手势

    相比Ios 和Android. Windows Phone 控件库中多了两个比较特殊的空间Pivot 枢轴和Panamera 全景视图控件.在基于枢轴控件Pivot中我们经常会碰到一些比较特殊应用场景 ...

  2. prototype 原型

    在我刚学习javascript的时候对于原型的概念很模糊,现在也不是很懂,希望下面的文章对有相同问题的朋友有帮助,如果有误希望指正: prototype用于通常用于构造函数中,公用方法的继承上.构造函 ...

  3. 重写navigationController的push方法后,出现卡顿现象

    在使用navigation的pushViewController进行push的时候,两个页面间的动画会出现卡顿一下再推出的效果,是因为iOS7 viewController背景颜色的问题,看到大神的博 ...

  4. VMware安装Centos7,已将该虚拟机配置为使用64为,却无法执行64位操作

    在新建虚拟机之后,相信很多人都遇到了这个问题,这个问题的本质就是电脑是否支持虚拟化,虽然不是很清楚这是什么 解决方案就是,重启电脑(这边的电脑不是虚拟机而是主机),进入BIOS界面(不同电脑进入BIO ...

  5. UI: 窗口全屏, 窗口尺寸

    窗口全屏 窗口尺寸 示例1.窗口全屏UI/FullScreen.xaml <Page x:Class="Windows10.UI.FullScreen" xmlns=&quo ...

  6. layer弹窗监控键盘事件

    在开发中我们常常遇到客服各种其他问题,现在客服需要键盘按下关闭当前窗口事件和鼠标点击确定按钮事件一样. 我们需要在layer中编写一个监控事件.具体代码如下 layer.confirm('is not ...

  7. ssh项目将搜索条件进行联动

    <s:form namespace="/tb" action="tenderList" name="searchForm" id=&q ...

  8. VisualStudio配色方案

    最近发现一个很神奇的网站,可以方便的为VisualStudio配色:Studio Styles - Visual Studio color schemes 可以下载一份自己喜欢的配色方案 如果还不满意 ...

  9. iOS7时代我们用什么来追踪和识别用户?

    要识别用户,首先就是要选择一个标识符,通过这个标识符来识别这个用户的设备(而不是用户),这个标识符要能够保证一个设备上返回的值是一样的,并且在其他设备上不会出现相同的值. 在iOS7之前,曾经有过很多 ...

  10. 一道关于阿里简单面试题的反思C/C++

    题目是这样的: 正在挑战一个CrackMe的你,把需要填写的前面几位密码都正确猜出了,可是这最后一位密码,好像藏得有点深.CrackMe的作者还挑衅般的在里面藏了个.tar.gz文件,解压缩出来,里面 ...