gpt4 book ai didi

cocoa-touch - containsPoint 不适用于 CAShapeLayer?

转载 作者:行者123 更新时间:2023-12-04 03:24:17 25 4
gpt4 key购买 nike

我在 UIView 的主层中有两个 CAShapeLayers。
CAShapeLayers 具有复杂的形状,我需要知道是否在形状边界内触摸了一个点。另外,我需要知道哪个形状被触摸了。

我正在尝试 containsPoint,但没有任何效果。

最佳答案

敲了两天头后,我能够生成这个奇怪的代码,看起来它正在工作!

目标是 HitTest CAShapeLayer。 CAShapeLayer 在屏幕上移动,所以形状不是固定的。测试 CGPath currentPoint 并不简单。

随意添加任何输入...

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

CGPoint p = [[touches anyObject] locationInView:self];

CGAffineTransform transf = CGAffineTransformMakeTranslation(-shapeLayer.position.x, -shapeLayer.position.y);

if(CGPathContainsPoint(shapeLayer.path, &transf, p, NO)){

//触摸在形状内部
}

}

关于cocoa-touch - containsPoint 不适用于 CAShapeLayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983992/

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