可以直接使用CAGradientLayer来实现渐变色。(android有各种drawable,iOS有各种layer。)
CAGradientLayer * layer = [CAGradientLayer layer];
layer.frame = self.bounds;
UIColor * startColor = [UIColor clearColor];
UIColor * endColor = [UIColor redColor];
layer.colors = [NSArray arrayWithObjects:(id)startColor.CGColor, (id)endColor.CGColor,nil];
[self.layer addSublayer:layer];
不过,对于系统已定义的控件,如UIImageView,image是画在imageView.layer,而新的layer必定是加在原layer的上面。
所以,想在imageView上面直接使用CAGradientLayer作为图片背景,是不可能实现的。
系统为UIColor提供了一个方法,colorWithPatternImage。结合这个方法,我们可以玩出一些花样。下面的代码直接从Chameleon这个类库中复制的。
+ (UIColor *)colorWithGradientStyle:(UIGrad