【发布时间】:2013-03-27 02:35:50
【问题描述】:
我有以下设置:
浅蓝色视图,我们称之为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 吗?
【问题讨论】:
标签: iphone ios cocoa-touch uiview