关于UITableViewCell分割线的处理(换样式,宽度·高度调整,颜色等的设置)
2014-03-11 13:38
411 查看
1.系统自带的集中分割线的形式 myTableView.separatorStyle=UITableViewCellSeparatorStyleNone;(这个是去掉所有分割线)可以通过这个来设置
2.另外设置自定义的cell 首先通过myTableView.separatorStyle=UITableViewCellSeparatorStyleNone这个方法去掉所有的cell,然后在重载cell的drawRect方法,通过Quartz
2D技术直接进行绘制,思路如下,首先绘制整个cell的背景色,然后在cell的最下面绘制分割线,下面这个就可以自己设置分割线的样式 宽度和高度了代码片段如下:
// 自绘分割线( 貌似在ios7上不起作用,在ios7上可以使用下面的方法)
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextFillRect(context, rect);
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0xE2/255.0f green:0xE2/255.0f blue:0xE2/255.0f alpha:1].CGColor);
CGContextStrokeRect(context, CGRectMake(0, rect.size.height - 1, rect.size.width, 1));
}
另外如果在ios7先只想改变分割线的宽度位置等可以通过设置 因为这个设置只有在ios7及以上才可以
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
cell.separatorInset = UIEdgeInsetsMake(0, 50, 0, 0);//上左下右 就可以通过设置这四个参数来设置分割线了
}
3.有时候需要去掉多余的分割线 就可以通过一下这个方法实现 这个方法要在-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath这个方法中实现 如下://去掉多余的cell 分割线
if (tableView.dataSource>0) {
tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
[self setExtraCellLineHidden:tableView];
}else{
tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
}
经过这个判断之后调用下面的方法就可以实现 有数据时就有分割线没有数据时就没有分割线
- (void)setExtraCellLineHidden:
(UITableView *)tableView
{
UIView *view =[ [UIView alloc]init];
view.backgroundColor = [UIColor clearColor];
[tableView setTableFooterView:view];
[view release];
}
最近用到了这个cell的设置暂时就这么多 我也只是把网上的有关cell分割线相关的总结了一下 有什么不对的地方还希望大家更正!先谢过!
2.另外设置自定义的cell 首先通过myTableView.separatorStyle=UITableViewCellSeparatorStyleNone这个方法去掉所有的cell,然后在重载cell的drawRect方法,通过Quartz
2D技术直接进行绘制,思路如下,首先绘制整个cell的背景色,然后在cell的最下面绘制分割线,下面这个就可以自己设置分割线的样式 宽度和高度了代码片段如下:
// 自绘分割线( 貌似在ios7上不起作用,在ios7上可以使用下面的方法)
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextFillRect(context, rect);
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0xE2/255.0f green:0xE2/255.0f blue:0xE2/255.0f alpha:1].CGColor);
CGContextStrokeRect(context, CGRectMake(0, rect.size.height - 1, rect.size.width, 1));
}
另外如果在ios7先只想改变分割线的宽度位置等可以通过设置 因为这个设置只有在ios7及以上才可以
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
cell.separatorInset = UIEdgeInsetsMake(0, 50, 0, 0);//上左下右 就可以通过设置这四个参数来设置分割线了
}
3.有时候需要去掉多余的分割线 就可以通过一下这个方法实现 这个方法要在-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath这个方法中实现 如下://去掉多余的cell 分割线
if (tableView.dataSource>0) {
tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
[self setExtraCellLineHidden:tableView];
}else{
tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
}
经过这个判断之后调用下面的方法就可以实现 有数据时就有分割线没有数据时就没有分割线
- (void)setExtraCellLineHidden:
(UITableView *)tableView
{
UIView *view =[ [UIView alloc]init];
view.backgroundColor = [UIColor clearColor];
[tableView setTableFooterView:view];
[view release];
}
最近用到了这个cell的设置暂时就这么多 我也只是把网上的有关cell分割线相关的总结了一下 有什么不对的地方还希望大家更正!先谢过!
相关文章推荐
- UITableViewCell分割线(样式,宽度·高度调整,颜色等的设置)
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何把处理好后的数据导出Excel文件中(含背景\字体颜色设置)
- JavaScript基础 通过style属性设置div的高度,宽度,背景颜色
- ListView设置分割线高度和 颜色 ~问题~
- 设置listview分割线的颜色和宽度
- 去掉listview的分割线和分割线的颜色,高度的设置
- MFC,调整窗口大小限制大小,设置窗口的最大|最小宽度与高度
- Android 处理OnItemClickListener时关于焦点颜色的设置问题
- 给 NavigationView 的Menu的分割线 设置高度和颜色
- Android-->Dialog/DialogFragment宽度高度修改/全屏,自定义样式
- 有两种分别用<bgsound>和<embed></embed>标签,当用<embed>插入背景音乐时可以设置宽度和高度为0,隐藏播放器。
- 设置<a>链接颜色样式的几种方法
- 关于tableView group样式 时设置 cell的width 宽度
- 给 NavigationView 的Menu的分割线 设置高度和颜色
- 关于listview单元高度&设置列(包含列宽设置)和添加数据的方法
- 关于div的宽度或高度设置为100%时
- ListView的item高度问题及分割线的颜色设置
- 关于table设置固定宽度高度自适应
- QWidget设置边框(样式,宽度及颜色)
- android关于代码中动态设置view的高度宽度的问题