我有一个UITableView,我无法弄清楚如何正确的尺寸。
我的应用程序基于Tab Navigator模板。一个选项卡的视图加载包含导航控制器的NIB。导航控制器的根视图控制器将其类设置为没有相应NIB的UITableViewController。 UITableViewController声明为:
@interface MyRootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
问题是表格视图没有“结束”在屏幕上的正确位置。完全向下滚动时,标签栏会切断最后一个单元格中大约一半的文本:
alt text http://img.skitch.com/20091113-djd5ib5uktnc8gqq5e7798cqjb.png
所有NIB文件(对于Tab Navigator和Navigation Controller中的视图)都在模拟界面元素部分中将Bottom Bar设置为“Tab Bar”。
我已经尝试了几种在UITableViewController的viewDidLoad方法中为self.view.bounds设置新CGRect的变体,在调用super之前和之后都无效。
知道我可能会遗漏什么,或者从哪里开始寻找?
这是我当前的viewDidLoad(减去一些完全不相关的行):
- (void)viewDidLoad
{
self.title = @"Table View Controller";
CGRect frame = self.tableView.frame;
NSLog(@"Frame height: %d", frame.size.height);
frame.size.height -=100;
[self.tableView setFrame:frame];
[super viewDidLoad];
}
TheCGRect位似乎没有做任何事情,日志输出是“Frame height:0”
答案 0 :(得分:1)
试试这个
CGRect frame = self.tableView.frame; frame.size.height -= 50; //play around this value [self.tableView setFrame:frame];
答案 1 :(得分:0)
你应该把NSLog(@“帧高:%f”,frame.size.height);而不是%d,那么NSLog可以打印0以外的数字
答案 2 :(得分:0)
尝试在viewWillAppear中为表视图设置框架:尚未在viewDidLoad中定义框架。