美文网首页
iOS16屏幕强制横屏

iOS16屏幕强制横屏

作者: 北京小库里 | 来源:发表于2022-07-27 11:08 被阅读0次
    if (@available(iOS 16.0, *)) {
            [UIApplication.sharedApplication.keyWindow.rootViewController setNeedsUpdateOfSupportedInterfaceOrientations];
            
            NSArray *array = [[[UIApplication sharedApplication] connectedScenes] allObjects];
            UIWindowScene *ws = (UIWindowScene *)array[0];
            UIWindowSceneGeometryPreferencesIOS *geometryPreferences = [UIWindowSceneGeometryPreferencesIOS.alloc initWithInterfaceOrientations:1 << orientation];
            [ws requestGeometryUpdateWithPreferences:geometryPreferences
                                        errorHandler:^(NSError * _Nonnull error) {
            }];
        }else {
            if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
                SEL selector = NSSelectorFromString(@"setOrientation:");
                NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
                [invocation setSelector:selector];
                [invocation setTarget:[UIDevice currentDevice]];
                int val = orientation;
                // 从2开始是因为0 1 两个参数已经被selector和target占用
                [invocation setArgument:&val atIndex:2];
                [invocation invoke];
            }
        }
    

    相关文章

      网友评论

          本文标题:iOS16屏幕强制横屏

          本文链接:https://www.haomeiwen.com/subject/kzqzirtx.html