我在 - viewDidAppear
上有这段代码:
- (void)viewDidAppear:(BOOL)animated {
[self.viewContainer addSubview:self.tableView];
float w = self.viewContainer.frame.size.width;
float h = self.viewContainer.frame.size.height;
[self.tableView setFrame:CGRectMake(0, 0, w, h)];
NSLog(@"h = %f", h);
NSLog(@"viewContainer.height = %f", self.viewContainer.frame.size.height);
NSLog(@"tableView.height = %f", self. tableView.frame.size.height);
}
每当这段代码运行时,我都会在控制台日志中看到。结果如下:
h = 623.000000
viewContainer.height = 623.000000
tableView.height = 0.000000
为什么?我尝试设置 tableView 的尺寸有什么问题?
最佳答案
如果你想 catch 大小更新,尝试使用 UIViewController 的 viewDidLayoutSubviews
方法。
但是,在 viewWillAppear
或 viewDidAppear
中使用 addSubview
也不是最佳实践,因为每次出现 ViewController 时都会添加它(例如当您将在导航堆栈中返回它时)
关于ios - 无法在 XCode Objective C 上设置 UITableView 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34671293/