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