【问题标题】:iOS, autolayout to add a margin / spacer for iPhone 5 but not iPhone 4?iOS,自动布局为 iPhone 5 添加边距/间隔,而不是 iPhone 4?
【发布时间】:2016-06-13 01:44:01
【问题描述】:

我对自动布局有点生疏了,在我刷新/研究之后,我无法弄清楚如何实现我所需要的。我只支持风景。我只是在这里进行紧凑的布局。

我在 iPhone 4 上的空间刚刚好。但是我需要为 iPhone 5 添加一些间距面板或左右边距。

他是一个快速的模型。我需要在 A 节中添加间距。B 节是相同的方面

iPhone 5

######################
# A BBBBB    BBBBB A #
# A BBBBB    BBBBB A #
# A BBBBB    BBBBB A #
# A BBBBB    BBBBB A #
######################

iPhone 4

##################
# BBBBB    BBBBB #
# BBBBB    BBBBB #
# BBBBB    BBBBB #
# BBBBB    BBBBB #
##################

编辑 以下答案的总和...

【问题讨论】:

  • 如果你想为不同尺寸的屏幕自定义布局,你需要有多个storboards。
  • 你可以给它一个固定的宽度,等于 iPhone 4 的屏幕宽度,然后在视图中居中

标签: ios cocoa-touch autolayout


【解决方案1】:

通常,当我需要为不同尺寸的屏幕设置不同的尺寸间距时,我会创建辅助视图(我们称之为间隔器)

创建一个视图并将其固定到左侧的边缘(以及顶部和底部,但这并不重要)并将其宽度设置为等于父视图的宽度(顶部的父视图)。

现在编辑它的宽度约束以适应您的目的(例如,如果您希望 15 指向 iPhone 50 指向 iPhone 4 您可以在比例中使用 0.166 并在常量字段中使用 -80 .

将您的视图固定到此 spacer 并玩得开心 :)(您可以在屏幕的两边都这样做)

对于所有想知道我是如何得到这些数字的人: ax + b = y,在我们的例子中,我们必须解决我们需要解决的公式: 480 = iPhone 4 屏幕高度(或横向模式下的宽度) 568 = iPhone 5 屏幕高度(或横向模式下的宽度)

 a * 480 + b = 0 ----- this is the iPhone 4 formula
 a * 568 + b = 15 ----- this is the iPhone 5 formula
 480a = -b
 568a - 480a = 15
 a = 15 / 88
 0.17 * 480 + b = 0
 b = -81.6

添加图片以明确这一点:

【讨论】:

  • 感谢@EliBraginskiy 15 分是如何从 0.166 / -80 得出的?这与我正在寻找的相反,我想要更多的 iPhone 4。
  • @Jules 你说你想要 iPhone 5 的间距更大,是吗?
  • 哦,对不起,是的,弄糊涂了。这似乎很好,一旦我制定了价值观。可以问一下你是怎么解决的吗?我已经将我的工作添加到我的问题中,2 秒..
  • @Jules 当我工作时,我构建了一个公式(数字)来为我做这件事,但它基本上是数学。我正在更新答案以反映如何做到这一点。
【解决方案2】:

您可以使B 居中对齐,宽度相等,它们之间有一些间距。然后当有一些额外的空间(在 iPhone 5 的情况下)时,它将在 B 周围,你将实现你的目标。

稍后我会给你写详细的解释,但这个想法会奏效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多