【问题标题】:Swift constraint problems with multiply buttons多个按钮的 Swift 约束问题
【发布时间】:2018-07-18 23:43:38
【问题描述】:

我正在尝试用 Swift 制作一个简单的井字游戏。代码已完成,但我遇到了不同设备之间的限制问题,例如 iPhone 8 到 iPhone 8+。图像在按钮上。 这是一张图片,以便更容易看到问题。

【问题讨论】:

  • 你在使用stackViews吗?堆栈视图让一切变得如此简单。尤其是当屏幕上有很多按钮时。
  • 显示你的代码!

标签: ios iphone swift autolayout constraints


【解决方案1】:

1) 您将添加一个带有约束的垂直堆栈视图:宽度等于视图宽度和 1:1 的比例,如果询问,也是一个 XY 位置

2) 您将添加图像作为背景图像,其纵横比适合垂直堆栈视图并均匀分布

3) 你将在垂直堆栈视图中添加 3 个水平堆栈视图,并均匀分布

4) 向每个水平堆栈视图添加 3 个比例为 1:1 的按钮,并将图像作为背景图像添加到按钮中,并具有适合的宽高比

我建议您在容器视图的开始和结束处在宽度上留一些空间 X,在堆栈视图之外的空间中留出相同的数量。例如 10。

【讨论】:

    【解决方案2】:

    如果您使用堆栈视图,则应在其中使用 Fill Equally 作为分布

    在 Interface Builder 中,选择堆栈视图,点击 属性检查器(右侧边栏左起第四个图标)并选择 Fill Equally 用于堆栈视图部分中的分发

    ...或者,您也可以以编程方式

    stackView.distribution = .fillEqually
    

    如果您只是将视图放在超级视图中,则应为所有视图设置相等的宽度和高度约束Here is an example for a programmatic layout.

    【讨论】:

    • 那么如何添加行?
    • @PrashantTukadiya 它们可以作为视图添加到堆栈视图的顶部,也可以通过编程方式使用各种CALayers 修改其外观。
    • 是的,我知道,但是是否有可能获得我们需要放置它的确切位置?这是我的问题
    • @PrashantTukadiya 您可以为此使用约束乘数或简单地划分视图的宽度/高度来计算您需要的位置。
    • 非常感谢您的回答,您帮我解决了等宽等高问题!
    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多