gpt4 book ai didi

ios - 使用 Autolayout 的 Xcode 中的 Storyboard form factor 和 Active Scheme 之间有什么关系?

转载 作者:可可西里 更新时间:2023-11-01 05:44:46 26 4
gpt4 key购买 nike

我在 Xcode 5.0.1 中有一个针对 iOS7 的项目。我正在使用 Storyboard 设计应用程序,并且正在使用 Autolayout。

当我构建和运行应用程序时,我使用 iOS 模拟器对其进行测试。我在 3.5"和 4"视网膜方案之间切换,以在不同的屏幕尺寸上查看应用程序。

在大多数情况下,一切正常,Autolayout 似乎工作得很好。但是,在一个屏幕上,布局存在问题,但仅在以下情况下:

  • 我在 iOS 模拟器下将方案设置为“iPhone Retina(4 英寸)”
  • 在 Storyboard 上,外形规范设置为“Retina 3.5 英寸”

在这种情况下,Autolayout 似乎无处不在,除了我使用更复杂的 View 结构的一个地方:

The view is not laid out correctly

但是,如果我只是将 Storyboard 上的尺寸更改为“Retina 4-inch”,那么 Storyboard 上的一切看起来都很好,而且当它运行时,它看起来也很好。如果我将外形尺寸保留为“Retina 3.5 英寸”并将 iOS 模拟器更改为“iPhone Retina(3.5 英寸)”,情况也是如此:

The view looks fine

所以,我的问题是:这是正确的行为吗? Storyboard 外形尺寸是否必须与您正在测试的设备相匹配?我想知道,因为这是 Storyboard 中唯一导致问题的 View ,然而,切换形状因子会使一切正常运行,因此自动布局似乎工作正常。

最佳答案

我知道这个问题很老,但我刚刚遇到并解决了同样的问题。

我的情况是这样的:

1) 我有一个 UITableView,它受限于我的 View Controller 框架的大小。2) 在 vi​​ewDidLoad 方法中,我添加了一个表头 View ,使用我的 TableView 的框架作为表头的框架。

UIView *headerView = [UIView alloc]initWithFrame:self.tableView.frame];    
self.tableView.tableHeaderView = headerView;

这给了我一个标题,它隐藏了表格 View 中的内容,直到标题被向上滑动(类似于雅虎天气)。

3) 在标题的底部,我有几个标签显示在向上滑动之前可见的信息。

问题:

如果我在 3.5"模拟器上启动我的应用程序,但将 Storyboard 设置为 4"手机,则标题 View 底部的标签将呈现在屏幕底部下方,将它们切断。

如果我在 4"模拟器上启动了我的应用程序,但 Storyboard设置为 3.5",标签在表格的标题 View 中显得太高了。

如果我在与 Storyboard设置的大小相同的模拟器上启动应用程序,一切都会完美运行。

经过几个小时的思考,我意识到调用 viewDidLoad 时我的表格 View 的框架没有使用自动布局约束设置。当时它是从我的 Storyboard中推断出大小,然后根据约束进行调整。结果,我的表​​ View 标题与预期的 TableView 大小不同。

根据 TableView 的大小将添加 TableView 标题的代码移动到

viewDidLayoutSubviews 

方法,当应用自动布局约束时解决了这个问题。

关于ios - 使用 Autolayout 的 Xcode 中的 Storyboard form factor 和 Active Scheme 之间有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com