1獲取漸變色,獲取漸變的方法有好幾種痢站,之所以選擇用顏色生成圖片,再?gòu)膱D片獲取顏色选酗,是因?yàn)槲业膬?nèi)容不是固定的阵难,如果用一張固定的漸變色獲取顏色是不可取。還有一個(gè)方法用layer芒填,也不太好呜叫,最終選擇了這種
+(UIImage *)getImageWithColors:(NSArray *)colors
withBounds:(CGRect)bounds{
NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:colors.count];
for (UIColor *color in colors) {
[mutableArray addObject:(__bridge id)color.CGColor];
}
UIGraphicsBeginImageContextWithOptions(bounds.size, NO, [UIScreen mainScreen].scale);
CGContextRef context = UIGraphicsGetCurrentContext();
//繪制漸變層
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradientRef = CGGradientCreateWithColors(colorSpaceRef,
(__bridge CFArrayRef)[mutableArray copy],
NULL);
CGPoint startPoint = CGPointZero;
CGPoint endPoint = CGPointMake(CGRectGetMaxX(bounds), CGRectGetMaxY(bounds));
CGContextDrawLinearGradient(context, gradientRef, startPoint, endPoint, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
//取到漸變圖片
UIImage *gradientImage = UIGraphicsGetImageFromCurrentImageContext();
//釋放資源
CGColorSpaceRelease(colorSpaceRef);
CGGradientRelease(gradientRef);
UIGraphicsEndImageContext();
return gradientImage;
}
2閃爍效果,就是在加一個(gè)label殿衰,然后用一個(gè)layer朱庆,進(jìn)行動(dòng)畫。
image.png
image.png
image.png
image.png
image.png
image.png
image.png