您的位置:首页 > 产品设计 > UI/UE

关于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分割线相关的总结了一下 有什么不对的地方还希望大家更正!先谢过!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: