【问题标题】:Resize UITableView for iPhone 5为 iPhone 5 调整 UITableView 的大小
【发布时间】:2014-03-06 11:19:49
【问题描述】:

如何使 UITableView 高度适应 iPhone 4 英寸屏幕?我有以下配置,适用于 iPhone 4。但是在 iPhone 5 上(见下图)有一个空白区域,因为 tableview 没有 rezise。表格视图是可滚动的。

我启用了 autolaout,我尝试为所有视图和 tableview 定义水平和垂直间距约束,但我得到了相同的结果(见下图)。有什么建议吗?

自从我创建了一个自定义菜单以来,这个视图控制器被放置在一个占位符内。我尝试使用以下代码在父视图中设置占位符的常量。也不工作,tableview被剪裁了。

-(void) viewDidLoad{
      if([[UIScreen mainScreen] bounds].size.height == 568) //iPhone 4inch
        {
            NSLog(@"iphone5");
             self.dynamicTVHeight.constant = 465;
            [self.placeholder needsUpdateConstraints];
        }
        else{
            NSLog(@"iphone4");
            self.dynamicTVHeight.constant = 375;
            [self.placeholder needsUpdateConstraints];
        }

这些是我的 parentview 的约束,它实现了自定义导航菜单。我做了两个测试:

具有垂直和水平间距约束:

并且在我的占位符中使用高度限制:

【问题讨论】:

  • 你设置了tableview的frame高吗
  • 编辑:没有意识到你在使用 AutoLayout。删除了我之前的评论。

标签: ios iphone uitableview autolayout


【解决方案1】:

您需要将bottomSpaceToContainer(或底部布局)设置为 0。

确保您的 nib 文件中没有警告或错误(由 UITableView 上的黄色或红色标志指示)。如果没有,请确保您拥有完整描述 UITableView 位置所需的全部 4 个约束。

【讨论】:

    【解决方案2】:

    你想要什么:

    比较 iphone 4 和 iphone 5:

    希望对您有所帮助 =)

    【讨论】:

    • 我试过了,它在 iPhone5 上工作,但在 iPhone 4/4s 上的 tableview 被剪裁了。我更新了这个问题的图片,所以你可以看看我做错了什么。
    • 我没有发现任何问题 :( 可能来自您的代码。您是否使用按钮来比较屏幕?我为此编辑了答案。
    • 我将它放在另一个视图控制器的占位符中,因为我有一个自定义菜单。也许这就是问题所在。
    • 您可以尝试手动设置父视图的constraint Height 等于:[UIScreen mainScreen].bounds.size.height
    • 更改父视图控制器中占位符的高度约束?我用代码更新了我原来的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多