一、问题描述

在学习和开发中经常会遇到下面的问题,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. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  2. sql case 用法总结

    快下班了,抽点时间总结一下sql 的 case 用法. sql 里的case的作用: 用于计算条件列表的表达式,并返回可能的结果之一.sql 的case 类型于编程语言里的 if-esle if-el ...

  3. HTML 转 PDF

    使用WkHtmlToXSharp,免费的软件,内集成了chrome 的内核,可以对CSS进行渲染,很好用 是需要传入 HTML 网页地址就可以转化为PDF文件,不过网页的编码要是 utf-8 Nuge ...

  4. lvs/dr配置

    lvs/dr Director server : DIP:192.168.1.100/24  eth0 VIP:192.168.1.101/24  eth0:0 Real server: Real1: ...

  5. Python项目之我的第一个爬虫----爬取豆瓣图书网,统计图书数量

    今天,花了一个晚上的时间边学边做,搞出了我的第一个爬虫.学习Python有两个月了,期间断断续续,但是始终放弃,今天搞了一个小项目,有种丰收的喜悦.废话不说了,直接附上我的全部代码. # -*- co ...

  6. Linux 查找进程运行位置

    1.通过ps或者top命令查看运行的进程的pid ps -aux|grep php-fpm #或者 top 2. 获取进程的pid后,然后使用命令ls -l /proc/${pid},这个命令可以列出 ...

  7. Linux/Mac/Shell常用命令

    常用命令 · ls 查看当前目录下的文件 · cd 进入某目录 · cd - 跳转回前一目录 · cd ~ 进入当前用户个人目录 · pwd 输出当前所在路径 · mkdir 新建文件夹 · touc ...

  8. 你所不了解的float(滥用float的怪异现象)

    float设计初衷就是为了实现文字环绕效果 原本页面流布局显示如上图所示,运用了float属性后就显示为如下图所示,这就是浮动的设计初衷 float的一些特性:包裹性.破坏性. 包裹的特性其实主要有三 ...

  9. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  10. Python学习笔记——字典

    1.创建字典和给字典赋值,可以使用工厂方法dict()来创建字典,也可以使用fromkeys()来创建一个元素具有相同值的字典 >>> dict = {'name':'XiaoMin ...