本文介绍: `[Orientation] BUG IN CLIENT OF UIKIT: Setting UIDevice.orientation is not supported. Please use UIWindowScene.requestGeometryUpdate(_:)`那我们看看 `UIWindowScene.requestGeometryUpdate(_:)` 怎么使用呢?

此文写于2022年08月03日,距离iOS16正式版推出还有一个多月的时间iOS16 beta版本有很多API的修改今天讨论的是屏幕旋转基于Xcode 14.0 beta4
之前的屏幕旋转报错
[Orientation] BUG IN CLIENT OF UIKIT: Setting UIDevice.orientation is not supported. Please use UIWindowScene.requestGeometryUpdate(_:)

我们看看 UIWindowScene.requestGeometryUpdate(_:) 怎么使用呢?

在这里插入图片描述

- (void)requestGeometryUpdateWithPreferences:(UIWindowSceneGeometryPreferences *)geometryPreferences 
                                errorHandler:(void (^)(NSError *error))errorHandler;

找到 Method 看到需要入参 UIWindowSceneGeometryPreferences *

在这里插入图片描述
UIWindowSceneGeometryPreferences 也是新增的API,很明显 UIWindowSceneGeometryPreferencesIOS 才是我们需要的。

在这里插入图片描述

- (instancetype)initWithInterfaceOrientations:(UIInterfaceOrientationMask)interfaceOrientations;

UIWindowSceneGeometryPreferencesIOS 有个实例方法传入一个枚举UIInterfaceOrientationMask ,到这就算摸清API使用的脉络了。

iOS16.0+ 横屏代码

        if (@available(iOS 16.0, *)) {
            [self setNeedsUpdateOfSupportedInterfaceOrientations];
            [self.navigationController setNeedsUpdateOfSupportedInterfaceOrientations];

            NSArray *array = [[[UIApplication sharedApplication] connectedScenes] allObjects];
            UIWindowScene *scene = (UIWindowScene *)array[0];
            UIWindowSceneGeometryPreferencesIOS *geometryPreferences = [[UIWindowSceneGeometryPreferencesIOS alloc] initWithInterfaceOrientations:UIInterfaceOrientationMaskLandscape];
            [scene requestGeometryUpdateWithPreferences:geometryPreferences
                errorHandler:^(NSError * _Nonnull error) {
                NSLog(@"wuwuFQ:%@", error);
            }];
            
        } else {

		}

原文地址:https://blog.csdn.net/wujakf/article/details/126133680

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32084.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注