0
点赞
收藏
分享

微信扫一扫

iOS开发 UItableView中的单元…

cnlinkchina 2023-04-30 阅读 93


iOS iPhone 开发 UItableView中的单元格背景渐变

渐变如果用背景图片,会让你的app臃肿。给APP瘦身,我们可以使用代码来解决渐变的问题。这篇文章是解决表格中的单元格的简便问题,同时解决单元格外边框问题。

1:设置好开始颜色与结束颜色。推荐一个小工具,在chrome浏览器上安装一个扩展 chroma 这个东西能帮助你很好的选择颜色。

下载地址:https://chrome.google.com/webstore/detail/chroma/gefgglgjdlddcpcapigheknbacbmmggp

iOS开发 UItableView中的单元…_iOS


CellbackgroundVIew 

CellbackgroundVIew.h



1. 
2.    @interface CellbackgroundVIew : UIView 
3.    @end

CellbackgroundVIew.m

1. "CellbackgroundVIew.h"
2.    @implementation CellbackgroundVIew 
3.    - (void)drawRect:(CGRect)rect 
4.    { 
5.        CGContextRef context = UIGraphicsGetCurrentContext(); 
6. 
7.        CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();    
8.        // 创建起点颜色 白色
9.        CGColorRef beginColor = CGColorCreate(colorSpaceRef, (CGFloat[]){1.0f, 1.0f, 1.0f, 1.0f}); 
10.        // 创建终点颜色 灰色 RGB(212,212,212) 这个色值我们可以从chroma扩展插件中选择
11.    class="brush:cpp; toolbar: true; auto-links: false;">   //(CGFloat[]){0.83f, 0.83f, 0.83f, 1.0f} 0.83是 212/255的值
12.    CGColorRef endColor = CGColorCreate(colorSpaceRef, (CGFloat[]){0.83f, 0.83f, 0.83f, 1.0f}); 
13.        CGRect paperRect = self.bounds; 
14.        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
15.        CGFloat locations[] = {0.0,1.0}; 
16.        NSArray *colors = [NSArray arrayWithObjects:(__bridge id)beginColor,(__bridge id)endColor, nil]; 
17.        CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)CFBridgingRetain(colors), locations); 
18.        CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); 
19.        CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); 
20.        CGContextSaveGState(context); 
21.        CGContextAddRect(context, rect); 
22.        CGContextClip(context); 
23.        CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0); 
24.        CGContextRestoreGState(context); 
25.        CGGradientRelease(gradient); 
26.        CGColorSpaceRelease(colorSpace); 
27.        //add line stroke
28.        CGRect strokeRect = CGRectInset(paperRect, 5.0, 5.0); 
29.        CGColorRef lineColor = CGColorCreate(colorSpaceRef, (CGFloat[]){0.83f, 0.83f, 0.83f, 1.0f}); 
30.        CGContextSetStrokeColorWithColor(context, lineColor); 
31.        CGContextSetLineWidth(context, 1.0); 
32.        CGContextStrokeRect(context, strokeRect); 
33.    } 
34.    @end

在表格中我们的cell 可以设置backgroundview


1. setBackgroundView: [[CellbackgroundVIew alloc] init]];

举报

相关推荐

0 条评论