iOS 之漸層顏色

來源:互聯網
上載者:User

標籤:cti   開始   https   switch   水平   case   type   bridge   pattern   

效果如下:

實現代碼如下:

.H

#import <UIKit/UIKit.h>/** 漸層方式 - IHGradientChangeDirectionLevel:              水平漸層 - IHGradientChangeDirectionVertical:           豎直漸層 - IHGradientChangeDirectionUpwardDiagonalLine: 向下對角線漸層 - IHGradientChangeDirectionDownDiagonalLine:   向上對角線漸層 */typedef NS_ENUM(NSInteger, IHGradientChangeDirection) {    IHGradientChangeDirectionLevel,    IHGradientChangeDirectionVertical,    IHGradientChangeDirectionUpwardDiagonalLine,    IHGradientChangeDirectionDownDiagonalLine,};@interface UIColor (IHGradientChange)/** 建立漸層顏色 @param size       漸層的size @param direction  漸層方式 @param startcolor 開始顏色 @param endColor   結束顏色 @return 建立的漸層顏色 */+ (instancetype)bm_colorGradientChangeWithSize:(CGSize)size                                     direction:(IHGradientChangeDirection)direction                                    startColor:(UIColor *)startcolor                                      endColor:(UIColor *)endColor;// 其他曲線漸層暫不考慮@end

.M:

#import "UIColor+IHGradientChange.h"@implementation UIColor (IHGradientChange)+ (instancetype)bm_colorGradientChangeWithSize:(CGSize)size                                     direction:(IHGradientChangeDirection)direction                                    startColor:(UIColor *)startcolor                                      endColor:(UIColor *)endColor {        if (CGSizeEqualToSize(size, CGSizeZero) || !startcolor || !endColor) {        return nil;    }        CAGradientLayer *gradientLayer = [CAGradientLayer layer];    gradientLayer.frame = CGRectMake(0, 0, size.width, size.height);    CGPoint startPoint = CGPointZero;    if (direction == IHGradientChangeDirectionDownDiagonalLine) {        startPoint = CGPointMake(0.0, 1.0);    }    gradientLayer.startPoint = startPoint;        CGPoint endPoint = CGPointZero;    switch (direction) {        case IHGradientChangeDirectionLevel:            endPoint = CGPointMake(1.0, 0.0);            break;        case IHGradientChangeDirectionVertical:            endPoint = CGPointMake(0.0, 1.0);            break;        case IHGradientChangeDirectionUpwardDiagonalLine:            endPoint = CGPointMake(1.0, 1.0);            break;        case IHGradientChangeDirectionDownDiagonalLine:            endPoint = CGPointMake(1.0, 0.0);            break;        default:            break;    }    gradientLayer.endPoint = endPoint;        gradientLayer.colors = @[(__bridge id)startcolor.CGColor, (__bridge id)endColor.CGColor];    UIGraphicsBeginImageContext(size);    [gradientLayer renderInContext:UIGraphicsGetCurrentContext()];    UIImage*image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    return [UIColor colorWithPatternImage:image];}@end

github源碼

我的blog

 

iOS 之漸層顏色

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.