iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – xcode – 如何将视图锁定为纵向模式,但仍允许一个视图旋转?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我遇到设备轮换问题.除了一个视图,我显示公司启动画面,我想将所有剩余的应用程序视图锁定到纵向显示.在项目设置中,支持的方向是PorTrait和LandscapeLeft.在“公司飞溅”中它工作正常,无论我如何旋转设备,视图旋转都被锁定在LandscapeLeft中.在我将设备向左旋转的所有其他视图中,视图会改变而不是保持纵向显示.这些方法甚至没有开火?如果我从项目中支持的方向中删除横向,则会拧紧“
我遇到设备轮换问题.除了一个视图,我显示公司启动画面,我想将所有剩余的应用程序视图锁定到纵向显示.在项目设置中,支持的方向是PorTrait和LandscapeLeft.在“公司飞溅”中它工作正常,无论我如何旋转设备,视图旋转都被锁定在LandscapeLeft中.在我将设备向左旋转的所有其他视图中,视图会改变而不是保持纵向显示.这些方法甚至没有开火?如果我从项目中支持的方向中删除横向,则会拧紧“公司启动”视图.我尝试将shouldAutorotate更改为NO,但这没有帮助.试图通过 here发布的建议,但这没有帮助.如果我将以下代码放入我的AppDelegate.m,一切都被锁定为纵向模式,并且“公司启动”在访问时崩溃.

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPorTrait | UIInterfaceOrientationMaskPorTraitUpsideDown;
}

除了一个屏幕外,无论设备如何旋转,如何将视图锁定为纵向模式?

**来自’公司飞溅’视图的方法.再次,应该是这样的工作.

-(NSInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft;
}

**来自所有其他视图的方法,当我不希望它们旋转时,这些视图会旋转出来

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // IOS5 Only returning that it should rotate to poTrait
    return (interfaceOrientation == UIDeviceOrientationPorTrait);
}

-(BOOL)shouldAutorotate
{
    // forcing the rotate IOS6 Only
    return YES;
}

-(NSInteger)supportedInterfaceOrientations
{
    // return number or enum IOS6 Only
    return UIInterfaceOrientationMaskPorTrait;
}

我想也许可能是因为UITabBarController是根控制器而我在ViewController中呢?这些方法甚至没有开火?

解决方法

将观察者添加到要旋转的视图的viewDidLoad方法,如下所示:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NsnotificationCenter defaultCenter]
 addObserver:self SELEctor:@SELEctor(orientationChanged:)
 name:UIDeviceOrientationDidChangeNotification
 object:[UIDevice currentDevice]];

然后根据orientationChanged方法中的横向视图设置视图,如下所示:

- (void) orientationChanged:(Nsnotification *)note{
UIDevice * device = [UIDevice currentDevice];
switch(device.orientation)
{
    case UIDeviceOrientationPorTrait:

        break;
    case UIDeviceOrientationPorTraitUpsideDown:

        break;
    case UIDeviceOrientationLandscapeLeft:

        break;
    case UIDeviceOrientationLandscapeRight:

        break;

    default:
        break;
  };
}

大佬总结

以上是大佬教程为你收集整理的iphone – xcode – 如何将视图锁定为纵向模式,但仍允许一个视图旋转?全部内容,希望文章能够帮你解决iphone – xcode – 如何将视图锁定为纵向模式,但仍允许一个视图旋转?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。