回転変換が適用された UIView に対して以下のコードを実行すると、奇妙な問題が発生しました。私がやろうとしているのは、スーパービューからビューを削除し、特定のビューの下に挿入してそのフレームを復元することです:
UIView* movedView= [self.views objectAtIndex:newIndex];
center = movedView.center;
CGRect oldFrame = movedView.frame;
//find the layer on top and insert the moved view under that
UIView* coveringView = [self.views objectAtIndex:newIndex-1];
[movedView removeFromSuperview];
[self.view insertSubview:movedView belowSubview:coveringView];
movedView.frame = oldFrame;
操作後、ビューは同じ場所に表示されると思いますが、CGAffineTransformMakeRotation() によって適用された回転の量に基づいて移動します。
フレームを割り当てる呼び出しをcenterプロパティを割り当てる呼び出しに置き換えることで、望ましい動作が得られました。これは私に考えさせられました.UIViewのフレームが回転したときに何が起こっているのかを理解するにはどうすればよいでしょうか? 変換がUIViewのフレームにどのように影響するかを概念的に理解するのに役立つ良いチュートリアルまたは何かがありますか?