1

メイン ビューとメイン ビューのいくつかのサブビューで構成されるビュー階層が下にありUIViewController、すべてストーリーボードで定義され、すべて IBOutlet を使用して接続されています。

メイン ビューに対するサブビューの位置とサイズを設定したいと思います。

と に設定してみましviewDidLoadviewWillAppear。どちらも機能せず、呼び出されると、メイン ビューには有効なフレーム値がありますが、サブビューにはすべて (0,0,0,0) のフレームがあります。

何もしなければ、サブビューはストーリーボードの正確な位置に表示されます。次のコードを機能させる必要がありますが、どこに配置すればよいかわかりません。

CGRect newFrame = CGRectMake(10,10,50,50);
[subView setFrame:newFrame];

この質問をする別の方法:
ストーリーボード サブビューのフレームはいつ、どこで設定されますか?
または、すべてのサブビューをコードで作成する必要がありますか?

4

2 に答える 2

1

autolayout を使用する場合、ビューのフレーム (フレームがスーパー ビューのフレームから計算される場合) を viewDidLayoutSubviews メソッドで設定するか、このメソッド[view setTranslatesAutoresizingMaskIntoConstraints:YES];を呼び出してから[view setFrame:...];. お役に立てれば。

于 2015-01-23T07:13:08.937 に答える
0

サブビューの位置とサイズは、UIViewController が viewDidAppear を呼び出すときに設定できますが、それによってプレゼンテーションがジャンプします。viewDid/WillLayoutSubviews での UITableView の位置とサイズの設定が機能しません。

于 2013-01-14T04:24:53.097 に答える