私は非常に奇妙な問題を抱えています。viewDidAppear
UIViewのスーパービューを次のように手動で回転および移動しようとしています。
- (void)viewWillAppear:(BOOL)animated
{
// ...
[self.view.superview setTransform:CGAffineTransformMakeRotation(M_PI/2)];
[self.view.superview setCenter:CGPointMake(100, 200)]; // (100, 200) is toy value
// ...
}
何らかの理由で、回転は正しく適用されますが、スーパービューの中心(つまり位置)はまったく移動しません。また、回転と平行移動の組み合わせ(または平行移動のみ)に変換を設定してみましたCGAffineTransform
が、スーパービューも移動しません。
違いが生じる場合self.view.superview
は、が一番上のビューです(つまりself.view.superview.superview
、ですnil
)。
ここで非常に単純なものが欠けていますか?
編集:nielsbotのコメントは、viewDidLoadに配置することが機能したという点で正しいものでしたが、その時点で、ビューはすでに表示されているため、新しい場所にスナップする場所にちらつきがあります。これを回避する方法はありますか?