用纯色填充路径很容易:
CGPoint aPoint;
for (id pointValue in points)
{
aPoint = [pointValue CGPointValue];
CGContextAddLineToPoint(context, aPoint.x, aPoint.y);
}
[[UIColor redColor] setFill];
[[UIColor blackColor] setStroke];
CGContextDrawPath(context, kCGPathFillStroke);
Run Code Online (Sandbox Code Playgroud)
我想绘制渐变而不是纯红色,但我遇到了麻烦.我已经尝试了问题/答案中列出的代码:iPhone上的UIView和UILabels上的渐变
这是:
CAGradientLayer *gradient = [CAGradientLayer layer];
[gradient setFrame:rect];
[gradient setColors:[NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor],
(id)[[UIColor whiteColor] CGColor], nil]];
[[self layer] setMasksToBounds:YES];
[[self layer] insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)
然而,这描绘了整个视图,它与渐变一起,掩盖了我的原始路径.
我目前有两个UIViews:一个是红色背景,另一个是蓝色.蓝色视图是红色视图的子视图.我想做的是能够"剪掉"蓝色视图上的矩形,以便可以看到红色视图.你是怎么做的?