无法在UITableView中增加UIScrollView contentSize

时间:2012-04-23 19:14:36

标签: 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以查看视图中的所有内容。之后我决定 将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的contentSize(它的UIScrollView基类)。我在loadView和 viewDidLoad方法但没有效果。

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

我之前遇到过与此类似的问题但是tableView在Xib文件中。我最后只是手动增加高度 IB中的滚动视图,但现在不适合我。任何明显的解决方案?

...谢谢

1 个答案:

答案 0 :(得分: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);

}