我的代码以编程方式创建一个基本的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中的滚动视图,但现在不适合我。任何明显的解决方案?
...谢谢
答案 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);
}