我有一个UITableView没有正确使用autoresizeMask(在iPhone 3.0中)调整大小。使用autoresizingMask的UITableView的大小错误
UITableView位于UITabBarController内的UINavigationController内部的UIViewController中,所有这些都是以编程方式创建的。状态栏是可见的。
所述的UIViewController的代码基本上是:
- (void)loadView {
UIView* rootView = [[UIView alloc] init];
self.view = rootView;
[rootView release];
}
- (void)viewDidLoad {
[super viewDidLoad];
// table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480-20-49-44)];
table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)]; table.autoresizingMask = UIViewAutoresizingFlexibleHeight;
[self.view addSubview:table];
}
当这样创建的,所述的UITableView大于可用空间稍大。如果我没有弄错,它的大小正好是导航栏的大小的44个像素。
但是,如果我取消注释注释行和注释下一行UITableView的大小是完全正确的。我宁愿使用autoresizingMask而不是手动计算UITableView的大小。我究竟做错了什么?
预先感谢您!
感谢您的迅速回复,科林。自动调整面具正在做一些事情。表视图正在创建一个320x100大小,但它填补了所有的屏幕。我可以将100改为200,尺寸也是一样的。 – hpique 2009-12-15 17:06:01
如果您没有设置自动调整大小的掩码,但仍将其设置为320x100,则它不会填满整个屏幕? – 2009-12-15 17:40:13
没错。如果没有设置自动调整掩码设置,表格视图将根据帧进行大小调整。 – hpique 2009-12-15 17:51:12