iOS: 在旋转过程中保持视图在屏幕上居中

iOS: Keep view centered on screen during rotation

如果您查看默认警报视图,当它出现时,它在设备旋转期间保持在完全相同的位置。它似乎以自己的中心为中心旋转。

我制作了一个自定义警报视图并且想要相同的行为。我有一个容器视图,其中包括一个背景视图(使屏幕变暗)和警报视图。当我旋转时,警报视图跳转到旋转后的新中心,然后动画到位。我怎样才能让它从它自己的中心旋转?

问题仅仅是您定位警报视图的约束不正确。如果它们正确,将自动居中并在旋转过程中保持原位。

例如:

v.autoresizingMask = .FlexibleTopMargin | .FlexibleBottomMargin | .FlexibleLeftMargin | .FlexibleRightMargin
v.setTranslatesAutoresizingMaskIntoConstraints(true)

这是 Matt 在 Swift 2+ 语法中的解决方案:

v.autoresizingMask = [.FlexibleTopMargin , .FlexibleBottomMargin , .FlexibleLeftMargin , .FlexibleRightMargin]
v.translatesAutoresizingMaskIntoConstraints = true