`

ios 按键横竖屏设置

阅读更多

 

 

手动设置竖屏:修改currentDevice orientation需要在setStatusBarOrientation前

 

            bool IsIOS8 = NO;
            float version = [[[UIDevice currentDevice] systemVersion] floatValue];
            if (version >= 8.0)
            {
                IsIOS8 = YES;
            }
            
            //改设备方向
            //if (IsIOS8) {
                [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"];
            //}
            [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];

 

UIApplication需要实现方法或者监听UIApplicaionDelegate委托回调

 

方法 1)UIApplication需要实现

-(NSUInteger)supportedInterfaceOrientations {
    UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation];
    UIInterfaceOrientation statusBarOrientation =[UIApplication sharedApplication].statusBarOrientation;
    if(deviceOrientation == UIDeviceOrientationPortrait || deviceOrientation == UIDeviceOrientationPortraitUpsideDown){
        if(statusBarOrientation != UIInterfaceOrientationPortrait ||statusBarOrientation != UIInterfaceOrientationPortraitUpsideDown){
            return 0;
        }
    }
    // otherwise
    return UIInterfaceOrientationMaskLandscape;
}

 

 方法 2)UIApplicaionDelegate委托接口

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation];
    UIInterfaceOrientation statusBarOrientation =[UIApplication sharedApplication].statusBarOrientation;
    if(deviceOrientation == UIDeviceOrientationPortrait || deviceOrientation == UIDeviceOrientationPortraitUpsideDown){
        if(statusBarOrientation != UIInterfaceOrientationPortrait ||statusBarOrientation != UIInterfaceOrientationPortraitUpsideDown){
            return 0;
        }
    }
    // otherwise
    return UIInterfaceOrientationMaskLandscape;
    
    // UIInterfaceOrientationMaskAll
    // it is the safest way of doing it:
    // - GameCenter and some other services might have portrait-only variant
    //     and will throw exception if portrait is not supported here
    // - When you change allowed orientations if you end up forbidding current one
    //     exception will be thrown
    // Anyway this is intersected with values provided from UIViewController, so we are good
    //return   (1 << UIInterfaceOrientationPortrait) | (1 << UIInterfaceOrientationPortraitUpsideDown)
    //| (1 << UIInterfaceOrientationLandscapeRight) | (1 << UIInterfaceOrientationLandscapeLeft);
}

 

 

 

 

分享到:
评论

相关推荐

    ios 自定义数字软键盘

    确保在不同iPad型号和横竖屏模式下都能正常工作。 9. **优化性能与用户体验** 考虑到性能和用户体验,可以添加动画效果,如按键按下时的微小位移和颜色变化。同时,考虑处理多个按键同时按下或快速连续点击的情况...

    ios-RandomDigitalKeyboard.zip

    考虑屏幕尺寸、横竖屏切换以及不同iOS版本的兼容性。 在 "demo" 文件中,通常包含了这个自定义键盘的示例项目,你可以运行它来查看效果并学习其具体实现。通过研究代码,你可以了解如何将这个自定义键盘集成到自己...

    仿ios音量调节的效果(实用1).zip

    当然,实际项目中可能还需要考虑更多的细节,如动画效果、设备横竖屏切换的适配等,以提供更接近原生iOS的用户体验。此外,为了兼容不同版本的Android系统,可能还需要处理一些版本相关的特性。这个压缩包提供的源码...

    ios-支付宝支付密码.zip

    5. **适配不同设备**:考虑到iOS设备的屏幕尺寸差异,键盘可能需要支持横竖屏切换,并在不同分辨率下保持布局合理。 6. **错误处理**:如果用户连续输入错误的密码,可能需要弹出提示或锁定一段时间以防止恶意尝试...

    RFKeyBoard

    7. **兼容性**:考虑到不同设备和屏幕尺寸,RFKeyBoard需确保在iPhone和iPad上都能正常工作,适应横竖屏切换。 8. **国际化**:虽然主要针对身份证和电话号码,RFKeyBoard可能还考虑到了不同地区的电话号码格式,...

    让iPad和iPad mini如虎添翼的9款最佳键盘.docx

    4. **贝尔金(Belkin)QODE Ultimate 无线键盘(适用于2-4代iPad)** - 提供良好的键盘体验,按键间距和键程适宜,支持三种倾角和横竖屏切换,续航长达160小时,性价比高。 5. **罗技 Ultrathin 超薄iPad键盘保护套**...

    【国开搜题】国家开放大学 一网一平台 Android核心开发技术15 期末考试押题试卷.docx

    - **知识点:** 设置`android:configChanges="orientation|screenSize"`后,横竖屏切换时只执行`onConfigurationChanged`方法。 - **解释:** 这个设置告诉系统在屏幕方向或大小改变时不要重启Activity。相反,系统会...

    APP测试重点

    - **系统特性**:例如,Android支持横竖屏切换,而iOS默认锁定横屏模式;Android有物理Home键,而iPhone X及之后的机型则没有物理Home键。 - **按键响应**:测试音量键、电源键等功能在两个平台上的一致性和稳定性...

Global site tag (gtag.js) - Google Analytics