0

ストーリーボードを使用して、iOS 5.1 で iPhone アプリを作成しています。下部に UITabBar コンポーネントを持つ UIViewController があります。私は UITabBar デリゲート イベントを使用して、たとえば次のdidSelectItemように、各タブ ページに使用するさまざまなビュー コントローラーを読み込みます。insertSubview

[[self view] insertSubview:[salesQuotesVC view] belowSubview:mainTabBar];

ホスト ビューに挿入しているビュー コントローラーには、すべての自動サイズ調整アンカー/制約が有効になっている UITableView コントロールが含まれているため、使用可能なスペースに拡張する必要があります。また、シミュレートされたメトリクス Top Bar=Navigation Bar および Bottom Bar=Tab Bar もあります。3.5 インチと 4 インチ (iPhone 5) の画面を切り替えるときの UITableView のサイズ変更を除いて、すべて正常に動作します。Interface Builder を 3.5 インチのフォーム ファクタに設定すると、3.5 インチのデバイスでは問題なく動作しますが、4 インチのデバイスではテーブルが短すぎます。同様に、IB フォーム ファクタを 4 インチに設定すると、4 インチのデバイスでも問題なく動作します。テーブルが長すぎて、3.5 インチ デバイスのタブ バーの下に表示されます。

以前は 3.5 インチ/4 インチのデバイス間で自動サイズ変更の問題が発生したことはありませんが、これまでのところ、タブ ページに UITabViewControllers しか使用したことがありません。これは、UITabBar と UIViewController を使用して自分でタブの切り替えをコーディングしたのは初めてです (再利用の目的で行っています)。サイズ変更の問題はinsertSubview?

4

1 に答える 1

1

View Controller が自動的に処理してくれるので、これまで問題はありませんでした。ビューをサブビューとして追加する場合は、自分で行う必要があります。サブビューとして追加する前にテーブル ビューのフレームを設定するだけで、その後の変更は自動サイズ変更ルールによって処理されます。

于 2013-05-28T16:48:08.457 に答える