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

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

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

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

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

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

[[75464]]

2:接下来就是代码了 

创建一个 CellbackgroundVIew 

CellbackgroundVIew.h

  1. #import <UIKit/UIKit.h> 
  2.     @interface CellbackgroundVIew : UIView 
  3.     @end 

CellbackgroundVIew.m

  1. #import "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.     <pre class="brush:cpp; toolbar: true; auto-links: false;">   //(CGFloat[]){0.83f, 0.83f, 0.83f, 1.0f} 0.83是 212/255的值</pre> 
  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. [cell setBackgroundView: [[CellbackgroundVIew alloc] init]]; 

 

责任编辑:闫佳明 来源: oschina
相关推荐

2015-01-15 16:34:31

iOS源码单元格

2010-08-11 16:41:30

Flex DataGr

2009-08-07 17:54:41

C#单元格数据

2010-04-27 11:11:06

Oracle修改JTa

2021-08-13 11:10:32

OpenPyXLExcelPython

2011-07-07 16:38:21

iOS UITableVie

2023-06-07 10:41:43

2009-07-28 03:44:00

GridViewRow

2009-07-27 16:46:07

DetailsView

2021-09-09 08:58:32

Excel数据处理函数

2013-07-25 14:12:53

iOS开发学习UITableView

2013-06-20 11:21:58

iOS开发UITableView

2011-08-15 13:44:07

iPhone开发UITableView

2012-04-04 22:36:52

iOS5

2021-11-15 07:45:06

CSS 技巧背景光动画

2015-03-18 09:29:12

iOS开发争议

2010-08-26 10:42:18

CSStr td

2023-06-30 13:27:54

CSS径向渐变

2021-04-16 05:54:05

CSS 文字动画技巧

2010-08-11 16:30:49

Flex DataGr
点赞
收藏

51CTO技术栈公众号