gpt4 book ai didi

iphone - iOS 中的外部填充颜色

转载 作者:行者123 更新时间:2023-11-29 10:59:38 26 4
gpt4 key购买 nike

我有两个矩形(两个闭合子 cgpaths)。矩形 B 很小,并且存在于矩形 A 内部。其中的所有边。有没有一种直接的方法来填充矩形 B 外部的颜色区域。

CAShapeLayer fillExternalColor 类似的东西?如果不是直接方式,如何以编程方式执行此操作?

A - 紫色B - 黄色

Drawing A and then drawing B Drawing B and then drawing A

所以我尝试先画 A,然后再画 B。我希望 B 的颜色清晰(现在我放黄色),但后来我看到 A 的颜色是紫色..

我找到了提供 AnB 的 CGRectIntersection 方法和提供 AuB 的 CGRectUnion 方法。有没有一种方法可以给出 AuB - AnB 的其余区域?

最佳答案

您正在使用 CAShapeLayer。如果您的 fillColorstrokeColor 都是不透明的(alpha 1.0),您只需设置图层的 backgroundColor 来填充那些位于层的边界,但在其描边和填充路径之外。

我的测试代码:

@implementation ViewController {
CAShapeLayer *layer;
}

- (void)viewDidLoad {
[super viewDidLoad];

layer = [CAShapeLayer layer];
layer.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 250, 250)].CGPath;
layer.fillColor = [UIColor yellowColor].CGColor;
layer.strokeColor = [UIColor whiteColor].CGColor;
layer.lineWidth = 4;
layer.backgroundColor = [UIColor purpleColor].CGColor;
[self.view.layer addSublayer:layer];
}

- (void)viewDidLayoutSubviews {
layer.frame = self.view.bounds;
}

@end

结果:

screen shot of test app

关于iphone - iOS 中的外部填充颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com