gpt4 book ai didi

ios - 旋转 CGRect 内的点

转载 作者:可可西里 更新时间:2023-11-01 04:16:09 24 4
gpt4 key购买 nike

如何正确确定一个点是否在旋转的 CGRect/frame 内?

框架通过 Core Graphics 旋转。

到目前为止,我已经找到了一种算法来计算一个点是否在三角形内,但这并不是我所需要的。

正在旋转的框架是一个带有几个 subview 的常规 UIView。

最佳答案

假设您使用 transform 属性来旋转 View :

self.sampleView.transform = CGAffineTransformMakeRotation(M_PI_2 / 3.0);

例如,如果您有一个手势识别器,您可以使用 locationInView 和旋转 View 查看用户是否在该位置点击,它会自动为您考虑旋转:

- (void)handleTap:(UITapGestureRecognizer *)gesture
{
CGPoint location = [gesture locationInView:self.sampleView];

if (CGRectContainsPoint(self.sampleView.bounds, location))
NSLog(@"Yes");
else
NSLog(@"No");
}

或者你可以使用convertPoint:

- (void)handleTap:(UITapGestureRecognizer *)gesture
{
CGPoint locationInMainView = [gesture locationInView:self.view];

CGPoint locationInSampleView = [self.sampleView convertPoint:locationInMainView fromView:self.view];

if (CGRectContainsPoint(self.sampleView.bounds, locationInSampleView))
NSLog(@"Yes");
else
NSLog(@"No");
}

convertPoint 方法显然不需要在手势识别器中使用,而是可以在任何上下文中使用。但希望这能说明该技术。

关于ios - 旋转 CGRect 内的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002331/

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