ios - 无法在 XCode Objective C 上设置 UITableView 框架

标签 ios objective-c uitableview

我在 - 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 方法。 但是,在 viewWillAppearviewDidAppear 中使用 addSubview 也不是最佳实践,因为每次出现 ViewController 时都会添加它(例如当您将在导航堆栈中返回它时)

关于ios - 无法在 XCode Objective C 上设置 UITableView 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34671293/

相关文章:

objective-c - 查找器方法名称

objective-c - 将 UITableView 添加到 Storyboard上的 ViewController 时出错

ios - UITableViewCell的CAGradient层问题

ios - 如何获取系统设备语言,swift iOS

php - 如何在 NSDictionary 中 POST NSArray of NSDictionaries 而没有问题?

ios - 使用容器 View 时无法隐藏选项卡栏

ios - 有没有办法将 PFFile(图像)传递给另一个 Controller 并在不查询新 Controller 中的数据库的情况下显示它?

ios - 在 tableViewController 上添加对象

ios - 删除/private/tmp 后无法启动 iOS 模拟器

ios - Alamofire:发送 JSON 作为请求参数