logo头像

求知若渴,虚心若愚

iOS自定义tableViewCell分割线

我们做iOS开发,很多时候会用到tableView分割线的情况,有时候时没有分割线,有时候分割线长短和粗细以及颜色等等都需要进行一定程度的定制,那么这时候用系统的肯定就不管了,这个时候我么可以自己定制tableViewCell的分割线。

1. 消除tableView的自带的分割线。

1
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

2. 自定义UITableViewCell的子类,复写drawRect方法,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- (void)drawRect:(CGRect)rect
{

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);

CGContextFillRect(context, rect);



//上分割线,

CGContextSetStrokeColorWithColor(context, kUIColorFromRGB(0xe5e5e5).CGColor);

CGContextStrokeRect(context, CGRectMake(kScreenW * 108 / 750, -1, kScreenW - 10, 1));


//下分割线

CGContextSetStrokeColorWithColor(context, kUIColorFromRGB(0xe5e5e5).CGColor);

CGContextStrokeRect(context, CGRectMake(kScreenW * 108 / 750, rect.size.height, kScreenW - 10, 1));

}

其中kUIColorFromRGB是一个宏定义

3. 取三色颜色值

1
2
3
4
5
6
7
#define kUIColorFromRGB(rgbValue) [UIColor \

colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \

green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \

blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

4. 屏幕尺寸

1
2
3
#define kScreenW [[UIScreen mainScreen] bounds].size.width

#define kScreenH [[UIScreen mainScreen] bounds].size.height

这样,就可以定义tableViewCell上下分割线的长度.颜色和粗细了,具体参数自己尝试修改一下就知道了。

支付宝打赏 微信打赏

赞赏是对我们的肯定!