【发布时间】:2012-06-05 20:07:14
【问题描述】:
我正在尝试在我的drawRect中添加一个CAGradientLayer,代码如下:
- (void)drawRect:(CGRect)rect {
CAGradientLayer *gradientOverlay = [CAGradientLayer layer];
CGColorRef grayColor = [UIColor colorWithRed:37/255.f green:37/255.f
blue:37/255.f alpha:1.0].CGColor;
CGColorRef blueColor = [UIColor colorWithRed:23.0/255.0 green:171.0/255.0
blue:219.0/255.0 alpha:1.0].CGColor;
gradientOverlay.colors = [NSArray arrayWithObjects:
(id) grayColor,
(id) grayColor,
(id) blueColor,
nil];
gradientOverlay.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0],
[NSNumber numberWithFloat:0.4],
[NSNumber numberWithFloat:1],
nil];
CGPoint startPoint = CGPointMake(CGRectGetMinX(rect), CGRectGetMidY(rect));
CGPoint endPoint = CGPointMake(CGRectGetMaxX(rect), CGRectGetMidY(rect));
gradientOverlay.startPoint = startPoint;
gradientOverlay.frame = self.bounds;
gradientOverlay.endPoint = endPoint;
self.layer.mask = gradientOverlay;
}
知道为什么这不起作用吗?
【问题讨论】:
-
没有。 “不工作”是什么意思?
-
可能是因为您将渐变设置为蒙版。遮罩层用于以自定义方式剪辑可见性,例如圆角......它不会显示它设置的任何层。编辑:尝试将其添加为子层。
-
您似乎在复制和粘贴代码而没有真正理解它。这不是成功的秘诀……
标签: objective-c ios graphics gradient