0

我的代码以编程方式创建了一个基本的 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 中滚动视图的高度,但现在这不是我的选择。有什么明显的解决方案吗?

4

1 回答 1

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

}

于 2012-04-24T16:50:24.773 回答