2009-03-01 4 views
3

UITabBarControllerを使用する場合、下部のタブバーのサイズはどのようにして取得しますか?同様に、コンテンツ?私はタブブラウザーのサイズを[[UIScreen mainScreen] applicationFrame]にサイジングする例がたくさんあります。これは、タブバーが画面の下部にある程度のスペースを占めるため、正しくありません。UITabBarController内の利用可能な境界を取得する方法

また、タブバーのサイズを変更することはできますか?

おかげ ライアン

答えて

0

applicationFrameを使用できる理由は、UITabBarControllerがサブコントローラのビューをサイズ変更しているため、ビューのサイズ変更が正しくサポートされている限り、すべて正常に機能します。

タブバーのコントローラのtabBarプロパティにアクセスして、そのフレームを見て、タブバーのサイズを取得できます。

CGFloat myViewHeight = tabBarController.view .size.height 
        - tabBarController.tabBar.size.height; 
+0

使用しているsdkのバージョンを教えてください。私は2.2.1を使用していますが、tabBarプロパティにアクセスすることはできません – carlos

+0

.sizeはtabBarのプロパティではありません – ChrisP

+0

@ChrisPあなたは絶対に正しいです。 '.frame.size'ではなく' .size '。申し訳ありません。 –

0

あなたがUITabBarのサイズを変更する方法を見つけることができるなら、あなたはUITabBarControllerのUITabBarのサイズを変更することができます。

[[UITabBarController subviews] objectAtIndex:0] 

ただし、オブジェクトに直接アクセスすることはお勧めしません。

1

旧:タブバープラスビューのための面積の合計サイズがこれほど少ないの減算はあなたが探している番号を取得します、タブバーのコントローラのビュープロパティのフレームを見ることで見つけることができますとにかく:

NIBからビューをロードしない場合は、loadView funcに自動サイズ変更フラグを設定します。このような何か:

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | 
          UIViewAutoresizingFlexibleWidth; 

その場合、あなたはあなたのビューのフレームを指定するには、[[UIScreen mainScreen] applicationFrame]使用することができます。タブバーが存在する場合、自動的にリサイズされます。

ビュー用のNIBがある場合、自動サイズ変更マスクはInterface Builderによって自動的に設定されます。

Markus

+0

ありがとう、ちょうど私が必要なもの!私のコードは 'UITableView * table = [[UITableView alloc] initWIthFrame:self.view.bounds style:UITableViewStylePlain];です。 table.autoresizingMask = UIViewAutoresizignFlexibleHeight | UIViewControllerのサブクラスである、viewDidLoadメソッドのUIViewAutoresizingFlexibleWidth; 'initWithFrame:self.view.bounds'は無意味ですが、私はちょうど"初期サイズ "(これはサイズ変更/直ちに置き換えられます)として設定します。 Markusのソリューションは、回転自動サイズ設定もサポートしています。 +1 – Raekye

関連する問題