您的位置:首页 > 其它

将CAGradientLayer当做mask使用

2016-02-16 21:03 183 查看
将CAGradientLayer当做mask使用



效果



源码

https://github.com/YouXianMing/Animations

//
//  CAGradientView.h
//  MaskView
//
//  Created by YouXianMing on 16/2/15.
//  Copyright © 2016年 YouXianMing. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface CAGradientView : UIView

/**
*  CAGradientLayer's colors.
*/
@property (nonatomic, strong) NSArray  *colors;

/**
*  CAGradientLayer's locations.
*/
@property (nonatomic, strong) NSArray  *locations;

/**
*  CAGradientLayer's startPoint.
*/
@property (nonatomic)         CGPoint   startPoint;

/**
*  CAGradientLayer's endPoint.
*/
@property (nonatomic)         CGPoint   endPoint;

@end


//
//  CAGradientView.m
//  MaskView
//
//  Created by YouXianMing on 16/2/15.
//  Copyright © 2016年 YouXianMing. All rights reserved.
//

#import "CAGradientView.h"

@interface CAGradientView () {

CAGradientLayer   *_gradientLayer;
}

@end

@implementation CAGradientView

+ (Class)layerClass {

return [CAGradientLayer class];
}

- (instancetype)initWithFrame:(CGRect)frame {

if (self = [super initWithFrame:frame]) {

_gradientLayer = (CAGradientLayer *)self.layer;
}

return self;
}

#pragma mark - 重写setter,getter方法

@synthesize colors = _colors;

- (void)setColors:(NSArray *)colors {

_colors = colors;

// 将color转换成CGColor
NSMutableArray *cgColors = [NSMutableArray array];

for (UIColor *tmp in colors) {

id cgColor = (__bridge id)tmp.CGColor;
[cgColors addObject:cgColor];
}

// 设置Colors
_gradientLayer.colors = cgColors;
}

- (NSArray *)colors {

return _colors;
}

@synthesize locations = _locations;

- (void)setLocations:(NSArray *)locations {

_locations               = locations;
_gradientLayer.locations = _locations;
}

- (NSArray *)locations {

return _locations;
}

@synthesize startPoint = _startPoint;

- (void)setStartPoint:(CGPoint)startPoint {

_startPoint               = startPoint;
_gradientLayer.startPoint = startPoint;
}

- (CGPoint)startPoint {

return _startPoint;
}

@synthesize endPoint = _endPoint;

- (void)setEndPoint:(CGPoint)endPoint {

_endPoint               = endPoint;
_gradientLayer.endPoint = endPoint;
}

- (CGPoint)endPoint {

return _endPoint;
}

@end


细节

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: