我正在尝试用圆形矩形剪切一个矩形,因为矩形的宽度可能只需要绘制角的一部分。总会有一个背景圆角矩形。
我有以下内容,填充颜色被剪裁,但我也得到剪裁的灰色背景。我有什么需要做的才能摆脱这个吗?
// Cell
UIBezierPath *cell = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 133, 55) cornerRadius:10];
[[UIColor greyColor] setFill];
[cell fill];
// Level
UIBezierPath *level = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 129, 55)];
[level fill];
UIBezierPath *clipPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 133, 55) cornerRadius:10];
clipPath.usesEvenOddFillRule = YES;
CGContextSaveGState(UIGraphicsGetCurrentContext()); {
[clipPath addClip];
[color setFill];
[level fill];
} CGContextRestoreGState(UIGraphicsGetCurrentContext());
UIBezierPath *contact = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(135, 19, 5, 17) byRoundingCorners: UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(2.5, 2.5)];
[color setFill];
[contact fill];
答案 0 :(得分:0)
灰色填充没有被剪裁的原因是因为它在剪辑添加到上下文之前发生。
你在裁剪之前和之后都在做[level fill];
。在裁剪之前删除它,它应该工作。