不使用 [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationAnyOrientation] 强制景观方向

发布于 2025-01-06 02:24:38 字数 441 浏览 0 评论 0原文

我有一个奇怪的问题,我不知道如何解决它! 我的应用程序支持任何类型的方向(纵向、横向等),但我设计的新部分(视图)仅在横向中有用。 因此,一旦按下按钮或在创建此特定视图时旋转设备方向,我就必须强制以横向方式加载新视图。

使用可以解决一切问题,但我在网上读到,使用此 API 会导致您的应用程序被 Apple 拒绝。 它仍然有效还是我可以使用它?

由于有很多视图,我使用 UIViewController 作为“容器”,这样我可以更好地处理它们。如果使用这个本身可能是一个问题,我会感到受伤...... 我尝试使用 CGTransform 旋转视图,并使用视图容器内的 BOOL“锁定”旋转,这解决了布局问题,因此视图显示正确,但当 textView 成为第一响应者时,键盘以纵向模式显示。 这就是设备方向仍然是纵向的原因。

我还尝试修改键盘布局以正确显示它,但没有任何效果。

感谢您为我提供的任何帮助!

I have a weird problem I can't figure out how to solve it!
My app supports any type of orientation (portrait, landscape ect..), but a new section (view) I designed, is useful only in landscape.
So I have to force my new view to be loaded in landscape once I pressed a button or rotate the device orientation when this particular view is created.

Using solve everything but I read on the web that using this API will lead your app to be rejected by Apple.
Is it still true or I can use it?

Having lots of views I used a UIViewController as "container", so I can handle them better. I wounder if using this may be a problem itself...
I tried to rotate the view with a CGTransform and "lock" the rotation using a BOOL inside the view container, this solved the layout problem so the view is displayed correctly but when a textView becomes firsresponder the keyboard is showed in portrait mode.
That's why the device orientation is still portrait.

I also tried to work on the keyboard layout to display it correctly but nothing worked.

Thank you for any help you'll provide me!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终难遇 2025-01-13 02:24:38

将此代码放入 viewWillAppear

UIViewController *viewController = [[UIViewController alloc] init];
[viewController setModalPresentationStyle:UIModalPresentationCurrentContext];
viewController.view.frame = CGRectZero;
[self presentModalViewController:viewController animated:NO];
[self dismissModalViewControllerAnimated:NO];
[viewController release];

这会将新的视图控制器旋转到设备方向

Put this code in viewWillAppear

UIViewController *viewController = [[UIViewController alloc] init];
[viewController setModalPresentationStyle:UIModalPresentationCurrentContext];
viewController.view.frame = CGRectZero;
[self presentModalViewController:viewController animated:NO];
[self dismissModalViewControllerAnimated:NO];
[viewController release];

This will rotate new view controller to device orientation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文