【问题标题】:Xcode 8 Vary Traits with autolayout issue具有自动布局问题的 Xcode 8 Vary Traits
【发布时间】:2017-03-15 23:13:10
【问题描述】:

好的,我终于开始使用 Xcode 8 进行自动布局了。

我可能在概念上有错误的想法。但是,我在 IB 中有一个视图,其中有 2 个标签,一个按钮和一个 imageview 死点,尺寸为 300 x 300,适用于 6plus 和 6 个设备。

我想要做的是改变 iPhone 5 (SE) 的 imageview 大小,所以我点击 Vary for Traits 并选择 height 和 width 然后将值更改为 150 x 150 点击完成,所有看起来都很好看 iphone 5 ( SE)。

现在回到 6plus 和 6,它的大小也调整为 150 x 150,但我希望图像大小保持为 300 x 300。我可能再次完全有错误的想法。

我认为这里的重点是它的大小取决于选择的内容,即变化。

【问题讨论】:

  • 不同的特征改变了不同大小类的约束。 4 和 6+ 都是相同的尺寸等级(横向中的 6+ 除外,它是常规宽度而不是紧凑)。
  • 好的,那么我如何让我在 6plus 和 6 中的图像为 300 x 300,而 iphone 4 在 IB 中为 150 x 150。正如我所说,我期待一旦我在 iphone 4 视图中更改为 150 x150 的变化特征模式,点击完成只会将 150x150 应用于 iphone 4,但它并不适用于所有设备。我确信我在概念上可能有错误的想法,但需要认真思考。
  • 你不能在 IB 中做到这一点。因特质而异仅适用于在尺寸等级之间变化,并且肖像 4 和 6+ 是相同的尺寸等级。
  • 好的,如果是这样,您是说我需要检查设备类型并根据设备在代码中以编程方式调整大小吗?我认为这是自动布局等的全部意义......还值得一提的是,我说 iPhone 4 我实际上是指 iPhone 5 (SE) 我已经重新编辑了我的问题,对此感到抱歉。
  • 是的,您可以通过编程方式完成并根据设备类型更改约束。看起来您只是想确保您的所有视图都适合屏幕?可能有比硬编码图像视图的大小更好的方法。

标签: ios iphone autolayout xcode8 size-classes


【解决方案1】:

Vary for traits or size class 不用于更改不同设备的自动布局,而是用于更改常规和紧凑尺寸(宽度或高度或两者)的布局。设备太多像 ipad pro iphone 7 plus 等常规宽度。 相同的 iphone se 和 iphone6 在纵向模式下具有相同的宽度,即 Compact。 因此,当您更改一个时,它会更改两个。 当您为特征选择变化并选择宽度+高度复选框时,它会在蓝色框中显示一些设备,这意味着所有这些都会受到影响。

最好以编程方式进行,检查设备类型并根据它设置大小。

【讨论】:

  • 自从我掌握了 AutoLayout 我原来的理解是错误的。不过感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
相关资源
最近更新 更多