网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

IOS绘制背景色渐变的矩形

两段代码,首先是使用方法

创新互联建站坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十载网站建设经验创新互联建站是成都老牌网站营销服务商,为您提供成都网站制作、成都网站设计、外贸营销网站建设、网站设计、H5场景定制、网站制作、品牌网站设计小程序制作服务,给众多知名企业提供过好品质的建站服务。

CGContextRef context = UIGraphicsGetCurrentContext();
NSArray *colors = [NSArray arrayWithObjects:
                       [UIColor colorWithRed:225.0 / 255.0 green:225.0 / 255.0 blue:225.0 / 255.0 alpha:1.0],
                       [UIColor colorWithRed:168.0 / 255.0 green:168.0 / 255.0 blue:168.0 / 255.0 alpha:1.0],
                       nil];
[self _drawGradientColor:context
                        rect:CGRectMake(rX, rY, rW, rH)
                     options:kCGGradientDrawsAfterEndLocation
                      colors:colors];
    CGContextStrokePath(context);// 描线,即绘制形状
    CGContextFillPath(context);// 填充形状内的颜色

在一段就是绘制背景色渐变的矩形

/**
 * 绘制背景色渐变的矩形,p_colors渐变颜色设置,集合中存储UIColor对象(创建Color时一定用三原色来创建)
 **/
- (void)_drawGradientColor:(CGContextRef)p_context
                      rect:(CGRect)p_clipRect
                   options:(CGGradientDrawingOptions)p_options
                    colors:(NSArray *)p_colors {
    CGContextSaveGState(p_context);// 保持住现在的context
    CGContextClipToRect(p_context, p_clipRect);// 截取对应的context
    int colorCount = p_colors.count;
    int numOfComponents = 4;
    CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
    CGFloat colorComponents[colorCount * numOfComponents];
    for (int i = 0; i < colorCount; i++) {
        UIColor *color = p_colors[i];
        CGColorRef temcolorRef = color.CGColor;
        const CGFloat *components = CGColorGetComponents(temcolorRef);
        for (int j = 0; j < numOfComponents; ++j) {
            colorComponents[i * numOfComponents + j] = components[j];
        }
    }
    CGGradientRef gradient =  CGGradientCreateWithColorComponents(rgb, colorComponents, NULL, colorCount);
    CGColorSpaceRelease(rgb);
    CGPoint startPoint = p_clipRect.origin;
    CGPoint endPoint = CGPointMake(CGRectGetMinX(p_clipRect), CGRectGetMaxY(p_clipRect));
    CGContextDrawLinearGradient(p_context, gradient, startPoint, endPoint, p_options);
    CGGradientRelease(gradient);
    CGContextRestoreGState(p_context);// 恢复到之前的context
}

还有一种实现方式

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = CGRectMake(rX, rY, rW, rH);
gradient.colors = [NSArray arrayWithObjects:
                       (id)[UIColor blackColor].CGColor,
                       (id)[UIColor grayColor].CGColor,
                       (id)[UIColor blackColor].CGColor,
                        nil];
[self.view.layer insertSublayer:gradient atIndex:0];

记得要

#import

此文的完成用到了四位老师的文章,在此表示感谢。

http://www.cnblogs.com/pengyingh/articles/2378840.html

http://www.dapps.net/dev/code/ios-dev-cgcontext-tips.html

http://www.cnblogs.com/smileEvday/archive/2012/06/05/UIColor_CIColor_CGColor.html

http://blog.csdn.net/reylen/article/details/8622932


本文题目:IOS绘制背景色渐变的矩形
浏览地址:http://bjjierui.cn/article/gjdooe.html

其他资讯