gpt4 book ai didi

iPhone - UIWindow 根据当前方向旋转?

转载 作者:太空狗 更新时间:2023-10-30 03:10:23 31 4
gpt4 key购买 nike

我正在向我的应用添加一个额外的 UIWindow。我的主窗口正确旋转,但我添加的这个附加窗口不旋转。

根据当前设备方向旋转 UIWindow 的最佳方法是什么?

最佳答案

您需要自己为 UIWindow 滚动。

监听 UIApplicationDidChangeStatusBarFrameNotification 通知,然后设置状态栏更改时的转换。

您可以从 -[UIApplication statusBarOrientation] 读取当前方向,并像这样计算转换:

#define DegreesToRadians(degrees) (degrees * M_PI / 180)

- (CGAffineTransform)transformForOrientation:(UIInterfaceOrientation)orientation {

switch (orientation) {

case UIInterfaceOrientationLandscapeLeft:
return CGAffineTransformMakeRotation(-DegreesToRadians(90));

case UIInterfaceOrientationLandscapeRight:
return CGAffineTransformMakeRotation(DegreesToRadians(90));

case UIInterfaceOrientationPortraitUpsideDown:
return CGAffineTransformMakeRotation(DegreesToRadians(180));

case UIInterfaceOrientationPortrait:
default:
return CGAffineTransformMakeRotation(DegreesToRadians(0));
}
}

- (void)statusBarDidChangeFrame:(NSNotification *)notification {

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

[self setTransform:[self transformForOrientation:orientation]];

}

根据您的窗口大小,您可能还需要更新框架。

关于iPhone - UIWindow 根据当前方向旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697605/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com