【问题标题】:Xcode problems with autolayout for iPhone SE size screensiPhone SE 尺寸屏幕的自动布局的 Xcode 问题
【发布时间】:2018-02-03 03:40:58
【问题描述】:

我正在为 iOS 11 上的 iPhone 设计应用程序,但遇到了有关视图控制器设计的问题。在我的iPhone 6s and above screen design 中,文本和按钮不会相互干扰。但是,在我的iPhone SE/iPhone 5s screen design 中,文本干扰了我的一些按钮。如图所示,橙色按钮的垂直位置基于下方蓝色按钮的位置。无论手机的屏幕大小如何,我都希望这个约束保持不变。按钮上方所有文本的垂直位置基于视图控制器的顶部。

有什么方法可以让我的文本的垂直位置与我目前在 iPhone 6s 及以上屏幕设计中的位置相同,同时缩小 iPhone SE 文本的垂直约束或字体大小?还是有其他方法可以避免文本和 UIButtons 相互干扰?

编辑:我也不希望我的设计是滚动视图。我想我可能不得不简单地减小所有设备的文本和按钮的大小。

【问题讨论】:

标签: swift xcode uiviewcontroller autolayout


【解决方案1】:

首先使用滚动视图。对于与文本重叠的按钮,您缺少按钮的顶部约束(按钮和文本之间的垂直空间)。为什么滚动视图?,因为我们知道所有 iPhone 的 SE、6S、6+ 等 iPhone 的高度都不同。因此,当您使用滚动视图时,如果高度小于您的内容,那么它是可滚动的,并且所有设备的内容大小保持不变。

【讨论】:

  • 我试图不为此使用滚动视图。对于这个特定的视图控制器,我需要所有文字和按钮都显示在屏幕上,而无需用户滚动。
  • 然后,您需要保持特定于此屏幕的控件大小,如果您以编程方式执行此操作会更好。此外,还可以根据屏幕高度的条件,取出垂直间距约束的出口并更改它,这样您就可以满足您的要求。
  • 我最终决定以编程方式创建我的约束,我得到了我需要的结果。
【解决方案2】:

根据您的要求,我设计了一个屏幕,在该屏幕中我将所有内容管理到一个屏幕中,而无需为各个设备提供滚动视图。

您只需使用 iPhoneSE 设计您的屏幕并使用 45 常量设置黄色按钮顶部约束,然后您需要从大小检查器属性设置它的关系 “大于或等于”

有关详细信息,请参阅随附的 iPhoneSE 和 iPhone8+ 屏幕截图。

【讨论】:

  • 这是@iOS 团队最疯狂的解决方案。看设计。这完全是最糟糕的,因为差距大于预期。如果我用 iPhone X 或 iPhone 8 Plus 运行同一个屏幕,会输出什么???
  • @PaulMarshal Gap 完全取决于应用程序 UI 要求,基于它我们可以使用约束对其进行管理,我认为使用它而不是使用滚动视图更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多