IOS / Objective-C / Autolayout中心四个水平图像

时间:2018-02-22 16:47:50

标签: ios autolayout

我很容易使用自动播放将三张图片集中在一起。我将中间的一个水平居中,将所有三个设置为相同的基线,然后设置外部的相对于中间的前后空格。

但是,现在我需要添加第四张图像,因此需要居中偶数张图像。所以我再也不能使用相同的技巧了。我想避免添加更多子视图,但无法想出一种简单的方法。

任何人都可以推荐一种首选的做法,水平对中偶数个水平图像吗?

这是三个图像的样子。我想添加第四个。

enter image description here

感谢任何建议。

2 个答案:

答案 0 :(得分:2)

我建议你使用堆栈视图。对于您的情况,您可以使用水平堆栈视图,并将分布设置为均匀填充。根据您的要求将约束设置为您的stackview,并将您的图像视图放在stackview中。当您想要添加新图像时,您只需拖动它,它就会相应地进行调整。

enter image description here

看起来像这样

enter image description here

如果您添加另一个,那么它将如下所示。

enter image description here

您可以在此处阅读有关如何使用堆栈视图的更多信息

Apple Documentation

Good tutorial to follow

答案 1 :(得分:2)

使用UIStackView来完成以下工作:

let stackView = UIStackView()

stackView.distribution = .fill
stackView.alignment = .center
stackView.axis = .horizontal
stackView.spacing = 30 // or whatever you need

// now add the dots to your stackView:
stackView.addArrangedSubview(dot1)
stackView.addArrangedSubview(dot2)
stackView.addArrangedSubview(dot3)
stackView.addArrangedSubview(dot4)

// and just add and lay out the stackView, stackView itself will take care of positioning the dots
self.view.addSubview(stackView)
...