私のコードは、基本的な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];
}
次に、特定のコンテンツをテーブルに追加するため、この基本クラスをサブクラス化します。コンテンツが表示され、テーブルビューをスクロールしてビュー内のすべてのコンテンツを表示できます。その後、tableViewの高さを35増やすことにしました。サブクラスで、loadViewメソッドをオーバーライドして追加します。
- (void)loadView
{
[super loadView];
self.tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height + 35);
}
tableViewフレームの高さを調整した後、必要な量をスクロールして、すべてのテーブルコンテンツを表示できなくなりました。テーブルをタップしてドラッグするとコンテンツが表示されますが、テーブルを離すとコンテンツがスナップして表示されなくなり、見えなくなります。他のいくつかの投稿を調べましたが、解決策はtableView(そのUIScrollView基本クラス)のcontentSizeを増やすことであるようです。loadViewメソッドとviewDidLoadメソッドの両方で試しましたが、効果がありません。
self.tableView.contentSize = CGSizeMake(self.tableView.contentSize.width, self.tableView.contentSize.height + 35);
以前はこれと同様の問題がありましたが、tableViewはXibファイルにありました。IBでスクロールビューの高さを手動で増やすことになりましたが、それは今のところオプションではありません。明らかな解決策はありますか?