2012-04-23 67 views
0

我的代码以编程方式创建基本的UITableView基类。无法在UITableView中增加UIScrollView contentSize

@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查看视图中的所有内容。后来我决定 增加的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的滚动视图的高度 ,但现在对我来说这不是一种选择。任何显而易见的解

谢谢...

回答

0

我解决了问题,但是我在有些茫然,为什么下面的代码是修复?我增加了tableview的大小,但没有查看大小。两者都增加了,然后可以滚动查看表格中的所有内容。

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

}