2011-01-07 9 views
0
LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)]; 
LiveStreamTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
[self.view addSubview:LiveStreamTable]; 

このコードはviewDidLoadにあります。 viewDidLoadとviewWillAppearの間では、テーブルは916の高さにリサイズされ、下部に44の空のpxが残されます(これはポートレートモードです)。私は間にデバッグ情報を印刷することを知っている。iPadの自動サイズ調整の下余白を作成するマスク

ビューにはステータスバーとナビゲーションバーがありますので、960は画面全体をちょうど埋める必要があります。そして、それはコメントアウトされたautoresizingMask行で行います。 iPadを回転させて横モードを動作させるときには、自動サイズ変更マスクに影響を与えるだけです。

私はまた、最初に風景の画面に行くと間違ったサイズになる問題があります。それはやや広すぎて短すぎるようになります。私はそれが関連していると仮定します。

私のテーブルが縦と横のビュー全体(ステータスバーとナビゲーションバーを除く)を占めるように、自動サイズ変更マスクを正しく使用するにはどうすればよいですか?

答えて

2

あなたの自動サイズ変更マスクは正しいですが、フレームを初期化する方法は正しくありません。

このビューをランドスケープで開くと、frame(0、0、768、960)が間違ったフレームを生成することを考慮してください。

代わりの

LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)]; 

あなたは

LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds]; 

を試してみてくださいこれはあなたの現在のViewControllerのビューに応じてフレームを初期化します。

このヘルプが欲しいです。

関連する問題