【问题标题】:frame size of view not changing in iOS 11iOS 11 中视图的帧大小没有改变
【发布时间】:2017-09-05 21:45:35
【问题描述】:

我的应用有一个按钮,它可以将我的视图旋转 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 及更低版本上运行起来就像一个魅力:

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

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

【问题讨论】:

  • 你不觉得改造后view的高度会变成宽度,宽度会变成高度吗?
  • @Suryakant 一开始我也这么认为,但这样做只会在 iOS 10 上导致错误的结果,但对 iOS 11 仍然没有影响。代码本身是正确的,只是它似乎没有在 iOS 上执行11 我不知道为什么。

标签: objective-c autolayout ios11 xcode9-beta


【解决方案1】:

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

self.tabsView.translatesAutoresizingMaskIntoConstraints = YES;

它将视图自动调整大小掩码转换为自动布局约束。 这样我在两个 iOS 版本上的结果都是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多