2012-04-23 17 views
0

私のコードは、基本的なUITableView基本クラスをプログラムで作成します。UIScrollView contentSizeをUITableViewで増やすことはできません

@interface BaseTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> { 
UITableView *tableView; 
UITableViewStyle tableViewStyle; 

}

loadViewメソッドは、私は、テーブルに特定のコンテンツを追加したいので、私は、この基本クラスのサブクラスのtableView

- (void)loadView 
{ 
[super loadView]; 
tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 338) style:tableViewStyle]; 
tableView.dataSource = self; 
tableView.delegate = self; 

UINavigationBar *navBar = self.navigationController.navigationBar; 
navBar.barStyle = [UIUtils barStyle]; 
navBar.tintColor = [UIUtils tintColor]; 

if (tableViewStyle == UITableViewStyleGrouped) tableView.backgroundColor = [UIUtils tableBGColor]; 

[self.view addSubview:tableView]; 

}

の基本的なプロパティを設定します。コンテンツは と表示され、ビュー内のすべてのコンテンツを見るためにテーブルビューをスクロールすることができます。その後、私はサブクラスでは35により 増加のtableViewの高さに決める私はこれ以上のテーブルのすべてのコンテンツを見るために必要な量をスクロールカントloadViewメソッドをオーバーライドしてのtableViewフレームの高さを調整した後

- (void)loadView 
{ 
[super loadView]; 
self.tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height + 35); 
} 

を追加します。 テーブルをタップしてドラッグするとコンテンツが表示されますが、リリースするとコンテンツは表示されなくなり、視界から復帰します。 私はいくつかの他の投稿を見て、解決策は、 のように見えるtableView(そのUIScrollView基本クラス)のcontentSizeを増加させる。私はloadViewと のviewDidLoadメソッドの両方で試しましたが、効果はありません。

self.tableView.contentSize = CGSizeMake(self.tableView.contentSize.width, self.tableView.contentSize.height + 35); 

これまでと同様の問題がありましたが、tableViewはXibファイルにありました。私はちょうど手動でIBのscrollviewの高さ を増加させることになったが、それは今私のためのオプションではありません。明らかな解決策はありますか?

おかげで...

答えて

0

私はしかし、多少の損失の次のコードを修正する理由で午前問題を解決?私はテーブルビューのサイズを増やしていましたが、サイズを表示しませんでした両方を増やして、表のすべてのコンテンツをスクロールすることができました。

- (void)loadView 
{ 
[super loadView]; 

// increase the size of the view and tableview by height of the statusbar frame which was removed... 
self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height + 35); 
self.tableView.frame = CGRectMake(0, 0, self.tableView.frame.size.width, self.tableView.frame.size.height + 35); 

}

関連する問題