在Swift中,如何使用Layout Anchor将多个子视图设置为具有相同的宽度(无常数)?

Joe Huang

例如,我有一个包含3个子视图的父视图。我正在以编程方式使用布局锚,并尝试实现以下布局

|--subview 1--|--subview 2--|--subview 3--|

三个子视图中的每个子视图具有相等的宽度。换一种说法,

subView1.width = subView2.width = subView3.width subView1.width + subView2.width + subView3.width = parentView.width

我知道我可以使用乘子将subView 1和subView 2的宽度设置为:

subView1.widthAnchor.constraintEqualToAnchor(contentView.widthAnchor, multiplier: 1/3).active = true
subView2.widthAnchor.constraintEqualToAnchor(contentView.widthAnchor, multiplier: 1/3).active = true

并且subView3可以具有要与subView2的尾随锚对齐的前导锚。

但是,我在某处看到Interface Builder实际上可以直接将这三个宽度分配为相等(而不使用常数或乘数)。是否可以通过编程对Layout Anchor进行相同操作?如何?谢谢。

加内什·卡玛特(Ganesh Kamath)

这是完整的锚点集(我已经尝试过并且可以使用):

// Create subView1
let subView1 = UIView()
subView1.backgroundColor = UIColor.redColor()
subView1.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(subView1)

// Create subView2
let subView2 = UIView()
subView2.backgroundColor = UIColor.blueColor()
subView2.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(subView2)

// Create subView3
let subView3 = UIView()
subView3.backgroundColor = UIColor.greenColor()
subView3.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(subView3)

subView1.leadingAnchor.constraintEqualToAnchor(contentView.leadingAnchor).active = true
subView1.topAnchor.constraintEqualToAnchor(contentView.topAnchor).active = true
subView1.bottomAnchor.constraintEqualToAnchor(contentView.bottomAnchor).active = true

subView2.topAnchor.constraintEqualToAnchor(contentView.topAnchor).active = true
subView2.bottomAnchor.constraintEqualToAnchor(contentView.bottomAnchor).active = true

subView3.topAnchor.constraintEqualToAnchor(contentView.topAnchor).active = true
subView3.trailingAnchor.constraintEqualToAnchor(contentView.trailingAnchor).active = true
subView3.bottomAnchor.constraintEqualToAnchor(contentView.bottomAnchor).active = true

subView1.trailingAnchor.constraintEqualToAnchor(subView2.leadingAnchor).active = true
subView2.trailingAnchor.constraintEqualToAnchor(subView3.leadingAnchor).active = true

// Add equal width anchors
subView1.widthAnchor.constraintEqualToAnchor(subView2.widthAnchor).active = true
subView2.widthAnchor.constraintEqualToAnchor(subView3.widthAnchor).active = true

希望这可以帮助。:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将多个滑块设置为相同的宽度

来自分类Dev

如何将多个视图的宽度设置为其中最大的内容宽度?(动态地)

来自分类Dev

文本视图在 DP 中具有相同的宽度设置但看起来不同

来自分类Dev

当某些输入具有固定大小时,如何将一行多个输入的宽度设置为浏览器窗口宽度的百分比?

来自分类Dev

使用CSS将div宽度设置为与内容相同的宽度

来自分类Dev

如何将图像的宽度设置为列表视图的宽度

来自分类Dev

在Storyboard Xcode 7中为具有不同宽度的两个视图设置常量

来自分类Dev

如何将 div 块中的文本设置为具有特定宽度?

来自分类Dev

如何使多个子图具有相同的y轴?

来自分类Dev

将表格中的所有选择元素设置为与其列中最宽的元素相同的宽度

来自分类Dev

将表格中的所有选择元素设置为与其列中最宽的元素相同的宽度

来自分类Dev

如何在SwiftUI中创建具有多个子视图的视图,例如VStack

来自分类Dev

使用JavaScript更改具有相同ID的多个图像的宽度

来自分类Dev

如何将视图高度设置为等于其宽度

来自分类Dev

如何将视图的宽度设置为等于任何displaysize?

来自分类Dev

如何使用Swift为多个子视图实现轻击手势识别器

来自分类Dev

如何使用Swift为多个子视图实现轻击手势识别器

来自分类Dev

如何将具有相同密钥的多个哈希分组为哈希数组

来自分类Dev

如何在Vuetify中不使用“ md / sm”将所有图块设置为特定宽度?

来自分类Dev

如何在不拉伸的情况下将所有图像设置为相同的宽度和高度

来自分类Dev

如何在ggplot lineplot中为具有相似颜色的多个子类着色?

来自分类Dev

Android如何将视图的宽度设置为屏幕宽度的一定比例?

来自分类Dev

iOS-如何将视图宽度设置为等于TableView Separator宽度

来自分类Dev

如何将按钮的样式表设置为具有多个属性?

来自分类Dev

如何在UIStackView中具有多个宽度和高度的子视图

来自分类Dev

如何在matplotlib中为不等间距的bin绘制具有相同bin宽度的直方图

来自分类Dev

如何为具有相同大小的多个按钮正确设置约束,以防止“无法为传入的头找到传出的行头”

来自分类Dev

LISP-将列表中的属性设置为列表中的对象(已购买具有相同索引)

来自分类Dev

如何将vim设置为具有与打开的文件相同的选项卡和空间约定?

Related 相关文章

  1. 1

    如何将多个滑块设置为相同的宽度

  2. 2

    如何将多个视图的宽度设置为其中最大的内容宽度?(动态地)

  3. 3

    文本视图在 DP 中具有相同的宽度设置但看起来不同

  4. 4

    当某些输入具有固定大小时,如何将一行多个输入的宽度设置为浏览器窗口宽度的百分比?

  5. 5

    使用CSS将div宽度设置为与内容相同的宽度

  6. 6

    如何将图像的宽度设置为列表视图的宽度

  7. 7

    在Storyboard Xcode 7中为具有不同宽度的两个视图设置常量

  8. 8

    如何将 div 块中的文本设置为具有特定宽度?

  9. 9

    如何使多个子图具有相同的y轴?

  10. 10

    将表格中的所有选择元素设置为与其列中最宽的元素相同的宽度

  11. 11

    将表格中的所有选择元素设置为与其列中最宽的元素相同的宽度

  12. 12

    如何在SwiftUI中创建具有多个子视图的视图,例如VStack

  13. 13

    使用JavaScript更改具有相同ID的多个图像的宽度

  14. 14

    如何将视图高度设置为等于其宽度

  15. 15

    如何将视图的宽度设置为等于任何displaysize?

  16. 16

    如何使用Swift为多个子视图实现轻击手势识别器

  17. 17

    如何使用Swift为多个子视图实现轻击手势识别器

  18. 18

    如何将具有相同密钥的多个哈希分组为哈希数组

  19. 19

    如何在Vuetify中不使用“ md / sm”将所有图块设置为特定宽度?

  20. 20

    如何在不拉伸的情况下将所有图像设置为相同的宽度和高度

  21. 21

    如何在ggplot lineplot中为具有相似颜色的多个子类着色?

  22. 22

    Android如何将视图的宽度设置为屏幕宽度的一定比例?

  23. 23

    iOS-如何将视图宽度设置为等于TableView Separator宽度

  24. 24

    如何将按钮的样式表设置为具有多个属性?

  25. 25

    如何在UIStackView中具有多个宽度和高度的子视图

  26. 26

    如何在matplotlib中为不等间距的bin绘制具有相同bin宽度的直方图

  27. 27

    如何为具有相同大小的多个按钮正确设置约束,以防止“无法为传入的头找到传出的行头”

  28. 28

    LISP-将列表中的属性设置为列表中的对象(已购买具有相同索引)

  29. 29

    如何将vim设置为具有与打开的文件相同的选项卡和空间约定?

热门标签

归档