无法在UITableView中增加UIScrollView contentSize
问题描述:
我的代码以编程方式创建基本的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的滚动视图的高度 ,但现在对我来说这不是一种选择。任何显而易见的解
谢谢...
答
我解决了问题,但是我在有些茫然,为什么下面的代码是修复?我增加了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);
}