可能重复:
在iPhone应用程序中手动绘制渐变?
我的应用程序需要在a UIView或者背景中显示文本,UILabel但是背景必须是渐变而不是true UIColor.使用图形程序创建所需的外观并不好,因为文本可能会根据从服务器返回的数据而有所不同.
有谁知道解决这个问题的最快方法?非常感谢您的想法.
我试图将子类CALayer用作另一层的掩码.
我想用我的CALayer子类来代替的CAGradientLayer,并用它的灰度掩模作为解释在这里.
但是我希望使用一个CALayer使用内部CGGradient进行绘制的自定义,因为这应该产生比CAGradientLayer(见这里)更平滑的结果.我不关心性能,我想要更好的渐变质量.
我正在按照这个例子来创建我CGGradient并将它存储在CALayer..然而,我无法得到掩码.
我不知道放在哪里抽奖代码:CALayer的display,也不drawInContext:(CGContextRef)ctx也不drawInContext:(CGContextRef)ctx似乎被调用时,它被用作面膜.
跟我一起玩,因为我是CoreAnimation的新手.那么,如何解决这个问题,以便我的CALayer子类可以替代它,CAGradientLayer但是使用CGGradient?
我目前的代码在这里:
@interface CANiceGradientLayer : CALayer
@property (nonatomic) CGGradientRef gradient;
@property (atomic) CGPoint startPoint;
@property (atomic) CGPoint endPoint;
@end
@implementation CANiceGradientLayer
- (instancetype)initWithGradientRef:(CGGradientRef)gradient startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint
{
if ( !(self = [super init]) )
{
return nil;
}
self.gradient = …Run Code Online (Sandbox Code Playgroud)