UIViewController からビューをレイアウトしたいと思います。viewDidLayoutSubviewsでレイアウト タスクを実行してみましたか:
- (void)viewDidLayoutSubviews
Appleのドキュメントによると:
ビューがサブビューをレイアウトした後、View Controller はこのメソッドをオーバーライドして変更を加えることができます。
ビュー自体はサブビューのレイアウトを行わないため (autosize、autolayout、または layoutSubViews を使用しません:)、このメソッドでレイアウト タスクを実行できます。
それにもかかわらず、エレガントな方法は、カスタムの親 UIView を使用し、そこですべてのレイアウトを実行して、UIView をオーバーライドlayoutSubViews:
することです (ビューを動的に追加/削除しない限り)。「ビューコントローラーがビューレイアウトプロセスに参加する方法」に関するAppleのドキュメントからの引用:
理想的には、ビュー コントローラーがプロセスにまったく参加する必要がなく、ビュー自体が再配置に必要なすべての作業を実行します。ただし、View Controller がビューを動的に追加および削除する場合、Interface Builder で静的レイアウトを使用できない場合があります。この場合、ビュー コントローラーはプロセスを制御するのに適した場所です。多くの場合、ビュー自体にはシーン内の他のビューの限られた画像しかないためです。