我正在见证oniOS 7.1上的奇怪行为,无论是在模拟器还是真实设备下。
如果我使用默认设置在Xcode中设置一个空项目,则添加以下方法:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
NSLog(@"VIEW: %@", self.view);
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
}
我得到的是4个方向的以下痕迹:
2014-11-10 12:25:59.190 testingRotation[13148:60b] VIEW: <UIView: 0x7a948980; frame = (0 0; 320 568); transform = [0, 1, -1, 0, 0, 0]; autoresize = W+H; layer = <CALayer: 0x7a948140>>
2014-11-10 12:26:01.415 testingRotation[13148:60b] VIEW: <UIView: 0x7a948980; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7a948140>>
2014-11-10 12:26:03.559 testingRotation[13148:60b] VIEW: <UIView: 0x7a948980; frame = (0 0; 320 568); transform = [0, -1, 1, 0, 0, 0]; autoresize = W+H; layer = <CALayer: 0x7a948140>>
2014-11-10 12:26:06.187 testingRotation[13148:60b] VIEW: <UIView: 0x7a948980; frame = (0 0; 320 568); transform = [0, 1, -1, 0, 0, 0]; autoresize = W+H; layer = <CALayer: 0x7a948140>>
如您所见,框架不会更改,并且会使用变换来旋转视图内容。
只有在使用iOS 7时才会发生这种情况。一切都在iOS 8下正常运行。不幸的是我无法在iOS 6下测试这个。
有人可以解释一下吗?