1

私はこれについていくつかの質問を検索して見つけましたが、私のために働いた答えを含むものはありませんでした。

このコードは、デバイスが縦向きの場合は現在のビューのサブビューを中央に配置しますが、横向きの場合は中央に配置しません。ランドスケープでセンタリングを機能させるにはどうすればよいですか?

UIView *redView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
redView.backgroundColor = [UIColor redColor];
redView.center = [self.view convertPoint:self.view.center fromView:self.view.superview];
[self.view addSubview:redView];
4

1 に答える 1

1

むしろ使用してみてください

 redView.center = [self.view convertPoint:self.view.center fromView:nil];

私のために働きます。

ドキュメントからのメモ:

座標系にポイントがあるビュー。ビューがnilの場合、このメソッドは代わりにウィンドウのベース座標から変換します。それ以外の場合、ビューとレシーバーの両方が同じUIWindowオブジェクトに属している必要があります

(viewDidLoadではなくviewDidAppearで呼び出す必要があります)

于 2013-01-15T07:55:47.943 に答える