iOS判断竖屏锁定是否开启

在一些屏幕旋转的业务逻辑中,有时候需要根据手机是否开启了竖屏锁定进行不同的处理。
iPhone开启/关闭竖屏锁定,在状态栏中会有对应图标的变化,下面代码的判断方法,就是通过遍历查找是否存在竖屏锁定的视图来判断的。

- (BOOL)isProtraitLockOn {
    UIApplication *app = [UIApplication sharedApplication];
    UIView *foregroundView = [[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"];
    BOOL isOn = NO;
    for (id child in foregroundView.subviews) {
        @try {
            id item = [child valueForKey:@"item"];
            int type = [[item valueForKey:@"type"] intValue];
            /*
             UIStatusBarItem.type
             0, 时间
             3, 信号强度
             4, 运营商
             6, 网络
             8, 电池
             9, 电量百分比
             12, 蓝牙
             14, 闹钟
             18, 竖屏锁定
             34, 耳机
             */
            if (type == 18) {
                isOn = YES;
                break;
            }
        }@catch (NSException *e) {}
    }
    return isOn;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容