使用stackview时偏离中心center.x.

时间:2018-01-08 19:01:08

标签: ios swift autolayout

enter image description here

我有一个堆栈视图,当用户点击其中一个按钮时,我想要一个小的“条形”视图位于其下方(视图位于堆栈视图之外)。在我通过设置

布置自动布局的按钮之前,我已经完成了这项工作
movableView.center.x = newView.center.x

并制作动画。现在使用堆栈视图中的按钮,movingView的中心X不会与按钮的中心x对齐。这就像中心的1/3路一样。

可移动视图本身没有自动布局。

这是什么原因以及如何对齐具有自动布局的视图的中心x?

1 个答案:

答案 0 :(得分:4)

如果没有更多信息,我最好猜测问题是什么。

center属性基于视图frame,这意味着它正在使用超级视图(在本例中为UIStackView)坐标系。如果您的UIStackView frame.origin.x未达到0,这就是屏幕截图中的显示方式,则需要相应地调整movableView.center.x。这可以很简单:

movableView.center.x = newView.center.x + stackView.frame.origin.x

另一种选择是将center转换为主视图的坐标系,如下所示:

movableView.center.x = newView.convert(newView.center, to: self.view).x