清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
- (void)drawRect:(CGRect)rect { // Drawing code //获取上下文 CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSaveGState(context); //创建颜色空间 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); //设置开始颜色和结束颜色 UIColor *startColor = [UIColor blueColor]; CGFloat *startC = (CGFloat *)CGColorGetComponents(startColor.CGColor); UIColor *endColor = [UIColor redColor]; CGFloat *endC = (CGFloat *)CGColorGetComponents(endColor.CGColor); //获取颜色分量,存入数组 CGFloat compoents[8] = { startC[0], startC[1], startC[2], startC[3], endC[0], endC[1], endC[2], endC[3], }; //指定渐变开始的位置和结束的位置 CGFloat colorIndices[2] = { 0.0f, 1.0f, }; //gradient指向渐变对象 CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, (const CGFloat *)&compoents, (const CGFloat *)colorIndices, 2); CGColorSpaceRelease(colorSpace); CGPoint startPoint,endPoint; startPoint = CGPointMake(0, 64); endPoint = CGPointMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); //扩展整个渐变之前的所有点和之后的所有点 CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, kCGGradientDrawsBeforeStartLocation|kCGGradientDrawsAfterEndLocation); CGGradientRelease(gradient); CGContextRestoreGState(context); }