旋转 UIView 后更新约束

Updating constraints after rotating a UIView

我有一个矩形 UIView,它的边缘被限制在它的父视图中。我需要将此视图旋转 90 度,然后更新其约束,使其保持正确地约束到父视图。如果我这样做

self.overlayView.transform = CGAffineTransformMakeRotation(M_PI * 0.5);

视图旋转,但宽度和高度在错误的旋转方向保持不变。我是否需要打破约束并重新设置它们,以便顶部被约束到父视图的左侧,左侧被约束到父视图的底部等等?

Autolayout 使用 frame 来完成它的工作。根据 the docs,当 transform 设置为身份以外的其他内容时,框架未定义。

基于 this,这似乎已在 iOS8 中修复(实际上他们引用了上述文档,并指出从 iOS8 setFrame 方法开始在转换后的视图上被调用)。