我有一个堆栈视图,当用户点击其中一个按钮时,我想要一个小的“条形”视图位于其下方(视图位于堆栈视图之外)。在我通过设置
布置自动布局的按钮之前,我已经完成了这项工作movableView.center.x = newView.center.x
并制作动画。现在使用堆栈视图中的按钮,movingView的中心X不会与按钮的中心x对齐。这就像中心的1/3路一样。
可移动视图本身没有自动布局。
这是什么原因以及如何对齐具有自动布局的视图的中心x?
答案 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