iOS iPhone 开发 UItableView中的单元格背景渐变
渐变如果用背景图片,会让你的app臃肿。给APP瘦身,我们可以使用代码来解决渐变的问题。这篇文章是解决表格中的单元格的简便问题,同时解决单元格外边框问题。
1:设置好开始颜色与结束颜色。推荐一个小工具,在chrome浏览器上安装一个扩展 chroma 这个东西能帮助你很好的选择颜色。
下载地址:https://chrome.google.com/webstore/detail/chroma/gefgglgjdlddcpcapigheknbacbmmggp
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]];
标签:CellbackgroundVIew,1.0,UItableView,iOS,0.83,rect,context,单元,CGFloat
From: https://blog.51cto.com/u_548275/6237791