【问题标题】:Bottom Space to: UIView Constraint底部空间到:UIView 约束
【发布时间】:2013-08-25 22:22:46
【问题描述】:

男孩,我迷失了这个。我有两个 UIViews“TopView”和“BottomView”。这用于在激活时有一个滑出菜单。我在页面底部有一个简单的 UILabel,其中包含版权信息。

问题:在不同的屏幕尺寸上查看版权信息时会失败。即

  • 屏幕尺寸 4" = 通过
  • 屏幕尺寸 3.5" = 失败(因为您看不到版权信息)

我已经成功解决了导致问题的原因,即在 Xcode 中添加一个约束到 UIView 的底部将其设置为 Superview,它非常适用于 4" 但不适用于 3.5" 屏幕尺寸,即

“底部到空间:SuperView”

我需要解决的是如何将“TopView”的约束更改为;

“Bottom To Space:底部布局指南”

这可以做到吗,如果可以怎么办?我有一种感觉,它违反了 Apple 的设计原则,因此无法做到。我不敢相信是这样,因为我确信我已经看到其他人这样做了。

抱歉没有代码,因为它都在 Xcode Storyboard 中。

杰里米

更新:附加图片以帮助提供一些背景信息。

第一张图片 = 顶视图

第二张图片 = 底部视图

【问题讨论】:

  • 有很多方法可以解决这个问题,但这取决于您希望在屏幕尺寸发生变化时发生什么。当屏幕尺寸变小时,您是否希望 TopView 或 BottomView 中的一个(或两者)变小?您是否希望这些对象之间或这些对象与超级视图边缘之间有一些空间变得更小?
  • 两者都不是。当用户在 UIView 上滑动手指时,我希望版权消息与 TopView 一起滑动。实际上,它与 Facebook 和市场上无数其他公司相同。
  • 我不是在问用户交互时会发生什么,我的意思是你希望 UI 元素如何随着不同的屏幕尺寸而变化?当您使用较小的屏幕时,要么事物需要变得更小或更靠近,要么两者兼而有之。你要哪个?

标签: ios uiview interface-builder storyboard autolayout


【解决方案1】:

但这绝对不违反设计原则。你只需要换个角度思考一下。我认为你遇到的主要问题是你给 TopView 一个固定的高度约束。相反,您需要让 TopView 的高度由它所具有的其他约束来确定。给底视图一个固定的高度,给顶视图和底视图一个垂直间距为零。满足其他约束(例如顶部和底部视图的前导和尾随空间到超级视图,以及顶部视图顶部空间到超级视图),您将正确地看到所有自动布局。

祝你好运!

【讨论】:

  • MMm…我有点明白你的意思…唯一的事情是两个 UIView 都没有与之关联的约束。在我看来,它会使屏幕根据它是 3.5 还是 4" 进行相应调整。当我在“TopView”上加上任何其他元素(即按钮、文本视图等)时,当您将 UIView 滑离舞台时,它会占用所有该视图上的元素。如果我固定高度,那将限制为只有一种屏幕尺寸。即 568 将是 4 英寸等。还是我错过了你的观点?...。
  • 我建议添加约束。让它们在两个屏幕上工作的关键不是在 TopView 上设置高度。您希望在运行时通过自动布局确定该视图的高度。下面是一个例子:github.com/ketzusaka/so-viewalignment
  • 好吧,詹姆斯,你所说的确实适用于那个特定的实例。所以我会给你分数。但是,我发现,因为我在 Apple 的 NDA 下,我无法讨论其他原因,因为事实证明,我可以分享的内容更多。感谢您对此的帮助。
猜你喜欢
  • 1970-01-01
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
相关资源
最近更新 更多