私は次の設定をしています:
水色のビュー(これを呼びましょう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スーパービューを考慮していませんか?