去掉UITableView多余的空白行分割线
一、问题描述
在学习和开发中经常会遇到下面的问题,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多余的空白行分割线的更多相关文章
- 去掉UITableView多余的分割线
UIView *v = [[UIView alloc] initWithFrame:CGRectZero]; [_tableView setTableFooterView:v];
- 拼接字符串去掉最后多余的串,JSON的遍历
一.遍历json change_url: function(key, value){ condition[key] = value; var string_url = "?"; f ...
- 去掉UItableview headerview黏性(sticky)
// 去掉UItableview headerview黏性(sticky) - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFlo ...
- 去掉UItableview headerview黏性
//去掉UItableview headerview黏性 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView ...
- 去掉UITableView HeaderView或FooterView随tableView 移动的黏性
去掉UITableView HeaderView或FooterView随tableView 移动的黏性(sticky) 控制器中实现以下方法即可: - (void)scrollViewDidScrol ...
- iOS设置tableViewCell之间的间距(去掉UItableview headerview黏性)
经常在项目中遇到自定义cell的情况,而且要求cell之间有间距,但是系统没有提供改变cell间距的方法,怎么办? 方法1:自定义cell的时候加一个背景View,使其距离contentView的上下 ...
- UITableView当数据很少的时候,去掉多余的cell分割线
转自:http://www.cnblogs.com/bucengyongyou/archive/2012/10/15/2723814.html 在tableView初始化的时候 UIView *v = ...
- 隐藏UITableView多余的分割线
先看看没有隐藏是什么效果以及代码是什么情况,这样更加直观
- 去掉uitableveiw多余的分割线
UIView *v = [[UIView alloc] initWithFrame:CGRectZero]; [_tableView setTableFooterView:v];
随机推荐
- LeetCode-62-Unique Paths
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- 使用java库中的对称加密算法
对称加密算法是说加密方和解密方使用相同的密钥.常见的对称加密算法包括4个,DES,DESede(3DES),AES,PBE. 本文讨论的内容是加密算法,不是Message Digest,不是编码.下面 ...
- Linux下压缩音频文件
安装工具 sudo apt-get install lame 具体用法可以查看帮助 lame --help 通过更改音频文件的帧数 可以让文件变小 但是音质也会随之下降 现在比较多的mp3文件是1 ...
- .eww
http://sourceforge.net/projects/ezwinports/files/ 下载libxml2的文件. 再下载的bin里复制libiconv-2.dll和libxml2-2.d ...
- Android开发常见问题小结
1.布局文件 自己写的布局文件无得使用 原因:导入了系统的R文件 修改:将android.R 这句注释 或者删除 2.Activity作为主窗口设置 Activity无法启动,或者要设置Activit ...
- pod setup 安装的最新办法(大坑啊)
由于升级到10.11以后安装cocodpods难免会碰到各种问题,下面有列举出不同的解决办法,建议一个方法如果不行,把文件请了再用第二种方法, 流程是这样的:正常安装-->碰到问题-->查 ...
- Android,不小心关闭了某个小窗口怎么恢复,方法介绍
Window > Show View > Other 需要哪个窗口就用哪个~
- jQuery倒计时插件
倒计时jQuery插件 引言 最近又换工作了,还不错,我换工作的次数其实有点频繁,2014年7月份毕业,到现在工作已经换了3份了,工资跟刚毕业时候相比也涨了点儿,最近一次换工作我离开了深圳,来到了北京 ...
- Tp-link TL-WR841N无线路由器端口映射到外网如何设置
针对TP-LINK的无线路由器进行演示如何设置端口映射和访问控制,演示使用的具体型号是TP-LINK TL-WR841N 3G无线路由器如何设置端口映射. 什么是端口映射? 端口映射又称端口转发,有的 ...
- [Unity3D] Normal map、Diffuse map 和 Speculer map
Normal map : Normal map (法线贴图) 它的作用是模拟出高模上的一些细节纹理,特别是将高模上的圆滑和粗糙度投射到低模上,让低模也有高模的效果. 因为高模的面数非常多,导入引擎后电 ...