Iphone 检查子视图中的点是否在父视图中

Iphone 检查子视图中的点是否在父视图中,iphone,ios,cocoa-touch,uiview,Iphone,Ios,Cocoa Touch,Uiview,我有以下设置: 浅蓝色视图(我们称之为parentView)有一个矩形子视图(紫色视图),名为childView。用户可以使用平移触摸旋转和拉伸childView,方法是将手指放在红点显示的点上,然后推或拉 childView可能会被缩放到足够小的程度,在用户完成触摸后,由红点表示的点将位于parentView的内部 我的目标是创建一种可以检测红点是否在父视图中的方法。我编写了以下代码: CGPoint childViewRedPoint = CGPointMake(self.bounds.s

我有以下设置:

浅蓝色视图(我们称之为
parentView
)有一个矩形子视图(紫色视图),名为
childView
。用户可以使用平移触摸旋转和拉伸childView,方法是将手指放在红点显示的点上,然后推或拉

childView
可能会被缩放到足够小的程度,在用户完成触摸后,由红点表示的点将位于
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;
}
首先,我找到在
子视图中定义的红点,然后根据视图已旋转的量旋转它,然后将其转换为
父视图
坐标


我得到的分数似乎没有意义,这是行不通的。想知道是否有人知道我哪里出了问题?我没有考虑parentViews superview吗?

我不是100%确定,但我认为
convertPoint:
已经考虑了旋转(或任何其他转换),所以您只需要:

CGPoint childViewRedPoint = CGPointMake(self.bounds.size.width, self.bounds.size.height / 2);
CGPoint convertedChildViewRedPoint = [self convertPoint:childViewRedPoint toView:self.superview];

if (CGRectContainsPoint(self.superview.bounds, convertedChildViewRedPoint))
...