写真1には、parentView1というUIViewがあります(これは灰色のビューです)。サブビューがあります(写真の4つ)。
CGAffineTransformRotateをparentView1に適用する前に、ビュー(赤い縦線)をドラッグしてparentView1にドロップすると、結果は図2のようになります。
ただし、最初にparentView1でCGAffineTransformRotate(コードを参照)を実行し、次にドラッグアンドドロップして赤い垂直ビューをparentView1に追加すると、赤い垂直ビューも、ドロップするとすぐにparentView1(画像3)と同じに回転します。垂直方向のビュー。私はそれが起こらないようにしたい。ドラッグする前に、赤い垂直ビューを元のビューと同じ方向に配置する必要があります。
同じ効果が逆にも発生します。parentView1が回転している場合は、サブビューをparentView1からその境界の外側に移動します。
なにか提案を?
parentView1を回転させるコード:
self.parentView1.transform = CGAffineTransformRotate(self.parentView1.transform, degreesToRadians(45));
ビューを親から別のビューに移動するコード:
-(void)getNewPosition2:(UIView *)viewToConvert parentView:(UIView *)parentViewx superParentView:(UIView *)superParentView
{
CGPoint newPoint = [superParentView convertPoint:viewToConvert.center fromView:parentViewx];
// viewToConvert.layer.position = newPoint;
viewToConvert.center = newPoint;
[viewToConvert removeFromSuperview];
[superParentView addSubview:viewToConvert];
}
上記のgetNewPostition2メソッドの呼び出し:
[self getNewPosition2:recognizer.view parentView:self.view superParentView:self.parentView1];