【问题标题】:Xcode adding constraints so an ImageViewXcode 添加约束所以一个 ImageView
【发布时间】:2016-06-19 12:35:12
【问题描述】:

我正在 Xcode 中制作一个应用程序,屏幕中间有一个主干,右侧有一个分支,如图所示(我放置了两个按钮,分别代表主干和分支。蓝色的按钮是树干,红色的是树枝)。

使用约束,我设法在每台 iPhone 设备中正确调整树干的大小,但我无法对分支做同样的事情。

你能告诉我如何使用约束来保持主干和分支的这种配置吗?

我尝试添加: - 在容器中水平对齐,使用“当前画布值” -纵横比 - 与主干成比例的纵横比 但它不起作用

这是代表树干和分支的按钮图像:

【问题讨论】:

    标签: ios xcode autolayout constraints


    【解决方案1】:

    你可以用 8 个约束来做到这一点:

    1. BlueButton.Top = Superview.Top.Margin
    2. BlueButton.Bottom = BottomLayoutGuide.Top
    3. BlueButton.Width = Superview.Width 与乘数 3:10
    4. BlueButton.CenterX = Superview.CenterX
    5. RedButton.Leading = BlueButton.Trailing
    6. RedButton.Trailing = Superview.Trailing.Margin
    7. RedButton.Width = RedButton.Height 与乘数 10:3
    8. RedButton.Bottom = Superview.Bottom with multiplier 0.4(使分支达到树上的 60%)

    创建约束 1 和 2:

    单击蓝色按钮将其选中。点击Pin [-[]-] 图标。打开顶部和底部的橙色工字梁,然后点击[Add 2 Constraints]

    创建约束 3:

    control - 从蓝色按钮拖动到白色背景。从弹出窗口中选择等宽。要设置乘数,再次单击蓝色按钮并在右侧的 Size Inspector 中找到 Equal width to superview 约束。点击Edit并将乘数设置为3:10

    创建约束 4:

    control - 从蓝色按钮拖动到白色背景。从弹出窗口中选择在容器中水平居中

    创建约束 5:

    control - 从蓝色按钮拖动到红色按钮。从弹出窗口中选择水平间距

    创建约束 6:

    control - 从红色按钮的中心以 45 度角向上拖动到背景的右边缘。从弹出窗口中选择Trailing Space to Container Margin

    创建约束 7:

    完全在红色按钮内,control-向上和向右拖动。从弹出窗口中选择纵横比。在Size Inspector中找到Ratio约束,点击Edit并将multiplier设置为10:3

    创建约束 8:

    最后一个是最难的,但你可以做到!点击红色按钮。现在,在情节提要左侧的 Document Outline 中,您会看到该按钮以灰色突出显示。按住 command 键并单击包含该按钮的View。当视图和按钮都被突出显示时,它应该是这样的:

    现在,点击对齐图标(在Pin [-[]-]左侧),点击底边,然后点击[Add 1 Constraint]

    现在,再次单击红色按钮,在 Size Inspector 中找到 Bottom Space to: Superview 约束。双击打开它:

    这就是我们想要的样子。你可能需要改变两件事。如果您的第一项Superview.Bottom,那么您需要交换第一项和第二项。为此,请单击 Superview.Bottom 并选择 Reverse first and second items

    接下来,将乘数更改为0.4,这意味着红色按钮的底部是Superview底部距离顶部的40%,这使得红色按钮从屏幕底部向上60%。

    哇!就是这样!





    【讨论】:

    • 我必须在哪里写这些行?
    • 啊,好吧,只是我不太明白我必须在屏幕底部的约束符号中单击什么..对不起,我不想打扰你,但看起来你有我需要的东西,所以我必须理解它
    • 天哪,非常感谢。它工作得很好,我现在很高兴 :D 实际上我不需要第 8 个,因为分支会向下移动,但我没有告诉你,很抱歉。再次感谢你,你是我的救星。最后一件事..再次,我不想打扰你,但很明显你真的很擅长这个而我不是,我们可以以某种方式保持联系吗?电子邮件、脸书或任何你想要的(如果你想要的话)。我保证我不会问太多问题..实际上现在没有问题,我只是在约束方面遇到了麻烦,但以防万一..
    • 最好的办法是继续在 Stack Overflow 上提问。您可以回复此评论以通知我您已发布问题,如果可以,我会查看。
    • Ehi,我遇到了问题。我尝试对左侧的红色按钮执行完全相同的操作,但它不起作用
    【解决方案2】:
    1. 首先为分支按钮指定高度。
    2. 然后给 trunc button 0 前导空格和 superview 0 尾随空格。

    现在只需要一个额外的信息来让 xcode 正常运行自动布局。即分支按钮的 y 位置。 如果你想让你的分支位置垂直居中

    1. 将容器约束中的垂直中心赋予分支按钮

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      相关资源
      最近更新 更多