我有以下设置:
浅蓝色视图,我们称之为parentView
,有一个矩形子视图(紫色视图),称为childView
。用户可以使用平移触摸来旋转和拉伸 childView,方法是将手指放在红点显示的点上并推动或拉动它。
有childView
可能 可以缩放到足够小,以至于在用户完成触摸后,红点表示的点将在parentView
.
我的目标是创建一种可以检测红点是否在其中的方法parentView
。我编写了以下代码:
CGPoint childViewRedPoint = CGPointMake(self.bounds.size.width, self.bounds.size.height / 2);
CGPoint rotatedChildViewRedPoint = CGPointApplyAffineTransform(childViewRedPoint, CGAffineTransformMakeRotation(self.rotateAngle));
CGPoint convertedChildViewRedPoint = [self convertPoint:rotatedChildViewRedPoint toView:self.superview];
if (CGRectContainsPoint(self.superview.bounds, convertedChildViewRedPoint))
{
return YES;
}
else
{
return NO;
}
首先,我找到 中定义的红点childView
,然后将其旋转视图旋转的量,然后将其转换为parentViews
坐标。
我得到的观点似乎没有意义,这不起作用。想知道是否有人知道我要去哪里错了?我没有考虑 parentViews superview 吗?