视图的框架大小在 iOS 11 中没有改变

frame size of view not changing in iOS 11

我的应用程序有一个按钮,可以将我的视图旋转 90 度并相应地更改其框架,以便它以横向方式填充屏幕。

代码如下:

CGAffineTransform transform = CGAffineTransformRotate(self.tabsView.transform, M_PI_2);

self.tabsView.transform = transform;


CGRect newFrame = CGRectMake( self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);

self.tabsView.frame = newFrame;

它对 iOS 10 岁及以下 非常有效:

但是 运行 它在 Xcode 9 beta 6 上 iOS 11 模拟器 我得到这个结果:

这是一个 bug 还是这个版本有什么我不知道的变化? 我使用自动布局。

我刚刚找到了解决方案。有必要添加这行代码:

self.tabsView.translatesAutoresizingMaskIntoConstraints = YES;

它将视图自动调整大小掩码转换为自动布局约束。 这样,我在两个 iOS 版本上得到了相同的结果。