【问题标题】:Autolayout issue with zoomed display with iPhone6 and 6PlusiPhone 6 和 6Plus 的缩放显示的自动布局问题
【发布时间】:2016-01-04 14:54:02
【问题描述】:

我在我的故事板中使用 Auto LayoutSize Classes 并且有一个按钮,它对我的​​视图控制器底部有一个垂直约束。但是,当我在 iPhone6 Plus 上以 zoomed 模式运行我的应用程序 (Settings -> Display & Brightness -> Display Zoom -> Zoomed) 时,按钮不会自行重新定位。

这是一个错误吗?如果是这样,最好的解决方法是什么,我可以找出应用程序是否处于缩放模式并相应地更改约束?

或者我在这里做错了什么?

【问题讨论】:

  • 是否有一些与视图控制器相关的代码?可以截图吗?
  • 感谢@jalone 我发现了问题所在。它确实导致了另一个问题,尽管stackoverflow.com/questions/34618527/… 如果你有任何见解的话

标签: ios autolayout uistoryboard iphone-6 iphone-6-plus


【解决方案1】:

基本上,缩放模式下的 iPhone 6+ 是 iPhone 6。缩放模式下的 iPhone 6 是 iPhone 5。您无需更改任何内容,只需确保您的代码在 iPhone 5 和 6 上运行即可.

并且不要试图找出您正在运行的手机。例如,有一些方法可以通过使用一些设备信息来发现您正在某个 iPhone 型号上运行 - 如果您使用这些方法,那么您的代码可能会在缩放时认为它正在 iPhone 6+ 上运行并且一切都出错了。只需检查屏幕的大小(并确保您也检查旋转)。

【讨论】:

  • 感谢@gnasher729 问题仅在放大视图中发生,请参阅我的回答。虽然它确实导致了另一个问题,我在这里问过stackoverflow.com/questions/34618527/…,如果您也有任何见解。
  • 对于其他有我问题的人,如果您使用SDVersion,请确保您调用resolutionSize 而不是deviceSize 是您对直接目标iPhone 5 进行一些手动计算。
【解决方案2】:

我找到的解决方案是向我的容器视图添加约束。有代码基于背景图像以编程方式设置容器视图框架。

无论是缩放模式还是标准显示模式,实际背景图像的大小都不会改变,即使它在缩放时都适合屏幕。所以我的容器框架最终比预期的要大,因此我的按钮几乎超出了设备的屏幕。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    相关资源
    最近更新 更多