2012-04-23 2 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]; 

}

Я тогда подкласс этот базовый класс, так как я хочу, чтобы добавить конкретное содержание к столу. Содержимое отображается , и я могу прокрутить табличное представление, чтобы увидеть весь контент в представлении. После этого я решил увеличить высоту 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 я не могу прокручивать необходимое количество, чтобы увидеть все содержимое таблицы не больше, , Если я коснусь таблицы и перетаскиваю ее, содержимое будет отображаться, но когда я отпущу ее, содержимое защелкнет назад и не будет видно из поля зрения. Я посмотрел на несколько других сообщений, и решение кажется , увеличивая contentSize таблицыView (его базовый класс UIScrollView). Я попробовал это в методах loadView и viewDidLoad, но не имеет эффекта.

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

У меня была проблема, аналогичная предыдущей, но tableView был в файле Xib. В итоге я просто увеличил высоту прокрутки в IB, но теперь это не вариант для меня. Любые очевидные решения?

Спасибо ...

ответ

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); 

}

Смежные вопросы