[控件] AngleGradientView
控件
2023-09-14 08:57:16 时间
* @param colors 颜色数组(CGColor)
* @param locations 颜色分割点数组(范围取值为[0, 1], 渐变递增,需要包含0与1这两个点)
* @return 创建好的带环形渐变的view
- (instancetype)initWithFrame:(CGRect)frame
withCGColors:(NSArray *)colors
withLocations:(NSArray *)locations;
+ (instancetype)gradientViewWithFrame:(CGRect)frame gradientType:(EAngleGradientType)type;
- (instancetype)initWithFrame:(CGRect)frame { return [self initWithFrame:frame withCGColors:nil withLocations:nil]; - (instancetype)initWithFrame:(CGRect)frame withCGColors:(NSArray *)colors withLocations:(NSArray *)locations { self = [super initWithFrame:frame]; if (self) { _angleGradientLayer = (AngleGradientLayer *)self.layer; if (colors != nil) { _angleGradientLayer.colors = colors; _angleGradientLayer.locations = locations; return self; + (instancetype)gradientViewWithFrame:(CGRect)frame gradientType:(EAngleGradientType)type { NSMutableArray *colors = nil; NSMutableArray *locations = nil; AngleGradientView *angleGradientView = nil;
colors = [[NSMutableArray alloc] initWithCapacity:16]; [colors addObject:(id)[UIColor colorWithWhite:0.65 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.9 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.75 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.35 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.75 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.9 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.75 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.35 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.55 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.65 alpha:1].CGColor]; } else if (type == GradientMetalTypeTwo) { colors = [[NSMutableArray alloc] initWithCapacity:16]; locations = [[NSMutableArray alloc] initWithCapacity:16]; [colors addObject:(id)[UIColor colorWithRed:0 green:0 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:1 blue:1 alpha:1].CGColor]; [locations addObject:[NSNumber numberWithInt:0]]; [locations addObject:[NSNumber numberWithInt:1]]; } else if (type == GradientRainbow) { colors = [[NSMutableArray alloc] initWithCapacity:16]; [colors addObject:(id)[UIColor colorWithRed:1 green:0 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:1 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:0 green:1 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:0 green:1 blue:1 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:0 green:0 blue:1 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:0 blue:1 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:0 blue:0 alpha:1].CGColor]; angleGradientView = [[AngleGradientView alloc] initWithFrame:frame withCGColors:colors withLocations:locations]; return angleGradientView; @end
+ (instancetype)gradientViewWithFrame:(CGRect)frame gradientType:(EAngleGradientType)type;
- (instancetype)initWithFrame:(CGRect)frame { return [self initWithFrame:frame withCGColors:nil withLocations:nil]; - (instancetype)initWithFrame:(CGRect)frame withCGColors:(NSArray *)colors withLocations:(NSArray *)locations { self = [super initWithFrame:frame]; if (self) { _angleGradientLayer = (AngleGradientLayer *)self.layer; if (colors != nil) { _angleGradientLayer.colors = colors; _angleGradientLayer.locations = locations; return self; + (instancetype)gradientViewWithFrame:(CGRect)frame gradientType:(EAngleGradientType)type { NSMutableArray *colors = nil; NSMutableArray *locations = nil; AngleGradientView *angleGradientView = nil;
colors = [[NSMutableArray alloc] initWithCapacity:16]; [colors addObject:(id)[UIColor colorWithWhite:0.65 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.9 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.75 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.35 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.75 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.9 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.75 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.35 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.55 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithWhite:0.65 alpha:1].CGColor]; } else if (type == GradientMetalTypeTwo) { colors = [[NSMutableArray alloc] initWithCapacity:16]; locations = [[NSMutableArray alloc] initWithCapacity:16]; [colors addObject:(id)[UIColor colorWithRed:0 green:0 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:1 blue:1 alpha:1].CGColor]; [locations addObject:[NSNumber numberWithInt:0]]; [locations addObject:[NSNumber numberWithInt:1]]; } else if (type == GradientRainbow) { colors = [[NSMutableArray alloc] initWithCapacity:16]; [colors addObject:(id)[UIColor colorWithRed:1 green:0 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:1 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:0 green:1 blue:0 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:0 green:1 blue:1 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:0 green:0 blue:1 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:0 blue:1 alpha:1].CGColor]; [colors addObject:(id)[UIColor colorWithRed:1 green:0 blue:0 alpha:1].CGColor]; angleGradientView = [[AngleGradientView alloc] initWithFrame:frame withCGColors:colors withLocations:locations]; return angleGradientView; @end
相关文章
- WPF 中如何使用第三方控件 ,可以使用WindowsFormsHost 类
- vs2008控件查看器
- Win10系列:C#应用控件进阶2
- 只允许输入数字的TextBox控件
- 使Button控件大小自动适应文本长度
- 12其他控件-06LED数码管-lednumber
- SAP UI5 sap.ui.vk 命名空间内的控件介绍
- 深入学习SAP UI5框架代码系列之五:SAP UI5控件的实例数据修改和读取逻辑
- SpringBoot 和 Vue 解决页面日期时间控件问题
- Qt5.9中用QSS将两幅图片显示在同一个控件中用法
- (三十九)c#Winform自定义控件-面包屑导航-HZHControls
- (十四)c#Winform自定义控件-键盘(一)-HZHControls