2012-02-21 10 views
0

アプリでは、NIBに構築したテーブルビューを使用して、サイズインスペクタで高さを68に設定しました。UITableViewの高さやフレームはどこで設定しますか? AwakeFromNib?

私のコードでは次のことも行います。

- (void) viewDidAppear:(BOOL)animated 
{ 
    self.tableView.frame = CGRectMake(0,0,320,68); 
    self.tableView.scrollEnabled = NO; 

} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
} 

- (void)awakeFromNib 
{ 
    [self.tableView setBackgroundColor:[UIColor clearColor]]; 
    self.tableView.rowHeight = 68; 
} 

私がシミュレータまたはiPhoneでアプリを実行すると、表は68pxの高さしかないので、うまく見えます。アプリを閉じて(ホーム画面に移動して)もう一度開くと、表の高さは68pxになりますが、画面全体が占有されます。

私はそれが常に68pxにとどまるように見えないのですか?

私の質問に加えて、上記の方法(awakeFromNib、ViewDidAppearなど)はどこにありますか?オブジェクトのサイズや位置だけを常に設定する必要がありますか?

答えて

0

は、私自身の解決策を見つけました。アップルごとの解決策は、UITableViewと他のサブビューを使用している場合、uitbalviewcontrollerを使用しないことです。テーブルビューは常に画面全体を使用しようとするためです。解決策は、uiviewcontrollerを使用してuiviewをベースとして使用し、uiviewをuiviewに入れ、uiviewcontrollerにtableviewを管理するために必要なデリゲートメソッドを与えることです。

あなたは完全な高さのuitableviewを望んでいない場合は、メニューバーでuitableviewcontrollerを使用しないでください。

1

は働くかもしれない、viewWillApperにあなたのコードを入れて

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
return 68; 
} 
0

、高さを設定するには、このメソッドを使用してください!

- (void)viewWillAppear:(BOOL)animated 

{

[スーパーviewWillAppear:アニメーション]。

self.tableView.frame = CGRectMake(0,0,320,68); 
self.tableView.scrollEnabled = NO; 
[self.tableView setBackgroundColor:[UIColor clearColor]]; 
self.tableView.rowHeight = 68; 

}

関連する問題