精华内容
下载资源
问答
  • ①如何 隐藏和显示控件 设置控件lD为1显示/隐藏 隐藏代码 《gone/8》 us(1,"visibility","gone") 显示代码 《visible/0》 us(1,"visibility","visible") 虽隐藏空间保留 《invisible》 注下:控件虽隐藏.但...

    如:隐藏为全屏《执行值或理解改变true》

    uycl(true)

     

    如:显示为非全屏《不执行值或理解未false》

    uycl(false)

     

    如:更变颜色,显示状态栏保留

    uycl("#50c4e5",true)

     

    如:更变颜色,隐藏状态栏空间

    uycl("#50c4e5",false)

     

    注下:常用与设置一体化颜色,以及更变不同的状态栏颜色。

     

    仅系统android 4.4以及以上才有效果,系统android 5.0以及以上效果更佳!

    android 4.4以下的系统,无效果!

     

    如:让用户横屏显示

    ushsp(true)

     

    如:让用户竖屏显示

    ushsp(false)

    展开全文
  • 很多时候,项目中都有这样的需求:APP中以竖屏为主,个别界面会要求横屏显示,或者要根据用户的手机朝向自动切换横竖屏;下面就来详细讲解,在项目中怎么使用代码来控制APP的界面转换.首先,要想APP支持多个方向,需要在工程...
        

    很多时候,项目中都有这样的需求:APP中以竖屏为主,个别界面会要求横屏显示,或者要根据用户的手机朝向自动切换横竖屏;下面就来详细讲解,在项目中怎么使用代码来控制APP的界面转换.
    首先,要想APP支持多个方向,需要在工程进行设置支持的朝向:
    General-->Deployment Info-->Device Orientation中进行设置
    设置APP支持的手机方向

    这样,就可以在项目中使用代码来控制页面的朝向了,在这之前,需要知道控制视图是否能够自动旋转,以及支持的朝向,是通过哪些方法来控制的?
    其实,主要使用的是下面三个方法:

    // New Autorotation support.  
    //是否自动旋转,返回YES可以自动旋转  
    - (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;  
    //返回支持的方向  
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;  
    // Returns interface orientation masks.  
    //这个是返回优先方向  
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;  

    一般情况下,实现前两个方法即可!这些都是UIViewController的实例方法,直接在需要设置的控制器内重写上面的方法即可;
    有时候,你会发现,只有在APP启动时出现的第一个界面内重写上面的两个方法,会有效果;而在其他的界面重写,并没有效果.这是因为,程序启动后的第一个界面是程序的跟视图控制器,而这些设置,必须是影响了跟视图中的相应设置,才会有效果;
    假如,你在跟视图中进行了如下设置:

    - (BOOL)shouldAutorotate{  
        return NO;  
    }  

    那么,在整个项目中,无论你如何设置,都不会有自动旋转屏幕的效果.
    综上可知,如果要改变某个视图屏幕方向,需要告诉跟视图,在跟视图中修改为相应的设置即可;
    所以,问题来了,怎么告诉跟视图呢?这要视情况而定:

    1.当前viewController就是跟视图控制器

    这种情况最简单,直接在控制器中重写上面的方法,设置是否支持自动旋转,以及支持的方向即可:

    - (BOOL)shouldAutorotate{
        return YES;
    }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
    - (NSUInteger)supportedInterfaceOrientations
    #else
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations
    #endif
    {
        return UIInterfaceOrientationMaskAll;
    }

    像上面我设置为支持自动旋转,支持所有的朝向;
    这种方式, 切换视图的方式主要是模态(present), 只需要在相应的UIViewController里重写上面的方法即可.
    但是这种情况很少见...
    对应的demo为:LZInterfaceRotation中的Rotation-UIViewController

    2.项目的跟视图控制器是导航(UINavigationController)

    这种情况比较常见,也很简单;一般使用的导航的时候,都不会去直接使用系统的UINavigationController,而会定义一个他的子类,做一些公共的设置:

    #import <UIKit/UIKit.h>
    
    @interface BaseNaviViewController : UINavigationController
    
    @end

    然后在导航的viewController里面重写上面的三个方法,这里也有两种方式来控制:

    2.1 设置最后一个push的viewController

    这种方式,主要是用在,当push到某个视图控制器时,要求他能够支持自动旋转,或者强制转为横屏;这里主要用到了导航的viewControllers属性,这是一个数组,数组的最后一个元素,就是最后push进去的viewController,所以,实现代码如下:

    -(BOOL)shouldAutorotate  
    {  
        return [[self.viewControllers lastObject] shouldAutorotate];  
          
    }  
      
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0  
    - (NSUInteger)supportedInterfaceOrientations  
    #else  
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations  
    #endif  
    {  
         return [[self.viewControllers lastObject] supportedInterfaceOrientations];  
    }  
      
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {  
          
        return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];  
    }  

    到这里还没有结束,这里只是获取到了最后一个push的viewController,然后用它去调用了相应的方法,具体的方法实现,还是需要在哪个viewController里进行设置的,也就是在需要特殊设置的viewController里重写上面的方法:

    -(BOOL)shouldAutorotate
    {
        return YES;
    }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
    - (NSUInteger)supportedInterfaceOrientations
    #else
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations
    #endif
    {
        return UIInterfaceOrientationMaskPortraitUpsideDown;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
        
        return UIInterfaceOrientationPortraitUpsideDown;
    }

    其实这样也就是告诉跟视图控制器,这个界面我要特殊设置一下;
    对应的demo为: LZInterfaceRotation中的Rotation-UINavigationController

    2.2设置指定的控制器

    第一种方法是,只要push进去一个视图控制器,都可以进行相应的设置,而这种方法是只针对特定的控制器进行设置,例如这里,我需要把SecondViewController 单独设置为支持横屏,只需要将第一种方法中的导航里的相应代码做如下修改:

    -(BOOL)shouldAutorotate
    {
        if ([[self.viewControllers lastObject]isKindOfClass:[SecondViewController class]]) {
            return YES;
        }
        
        return NO;
    }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
    - (NSUInteger)supportedInterfaceOrientations
    #else
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations
    #endif
    {
        if ([[self.viewControllers lastObject]isKindOfClass:[SecondViewController class]]) {
                    return UIInterfaceOrientationMaskLandscapeLeft;
                }
    
        return UIInterfaceOrientationMaskPortrait;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
        
        if ([[self.viewControllers lastObject]isKindOfClass:[SecondViewController class]]) {
            return UIInterfaceOrientationLandscapeLeft;
        }
    
        return UIInterfaceOrientationPortrait;
    }

    这样的好处是,可以控制指定的视图控制器,也不用在指定的视图控制器内再重写上面的方法;
    坏处就是,如果需要控制的视图控制器比较多的话,加的判断会多很多;没有方式一灵活;
    对应的demo为: LZInterfaceRotation中的Rotation-UINavigationController副本

    3.跟视图控制器是UITabbarController

    这种情况比较常见,项目的跟视图控制器是一个UITabBarController,这种情况的实现相对来说要复杂一些,但是,明白了原理,总是有方法来实现的.归根结底,也就是告诉跟视图,我这个界面需要支持旋转了;
    由于,在UITabBarController里直接获取到UIViewController比较困难,所以这里我采用通知的形式,来获取相应的设置状态;
    首先,设置一个全局的BOOL值,用于接收通知发送的参数:

    #import <UIKit/UIKit.h>
    
    @interface BaseTabBar : UITabBarController
    {
        BOOL shouldAutorotate;  
    }
    @end

    然后注册一个通知:

    //注册旋转屏幕的通知
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(autorotateInterface:) name:@"InterfaceOrientationNotification" object:nil];

    实现通知方法:

    -(void)autorotateInterface:(NSNotification *)notifition
    {
        shouldAutorotate = [notifition.object boolValue];
    }

    然后在重写的方法里加入判断:

    /** 
     * 
     *  @return 是否支持旋转 
     */  
    -(BOOL)shouldAutorotate  
    {  
        NSLog(@"======%d",shouldAutorotate);  
       return shouldAutorotate;
    }  
      
    /** 
     *  适配旋转的类型 
     * 
     *  @return 类型 
     */  
    -(UIInterfaceOrientationMask)supportedInterfaceOrientations  
    {  
        if (!shouldAutorotate) {  
            return UIInterfaceOrientationMaskPortrait;  
        }  
        return UIInterfaceOrientationMaskAllButUpsideDown;  
    }  

    这里我直接将支持的方向写死了,只是判断了一下是否支持自动旋转屏幕,如果需要将支持的方向传过来,可以修改通知携带的参数;
    最后在需要自动转屏的控制器内发送通知:

    [[NSNotificationCenter defaultCenter] postNotificationName:@"InterfaceOrientationNotification" object:@"YES"]; 

    对应的demo为: LZInterfaceRotation中的Rotation-UITabBarController

    PS新增: 关于何时发送通知
    例如有这样的需求: A竖屏, 不能自动旋转, B 可横屏可竖屏可自动旋转, 而且在从B回到A的时候, 如果不是竖屏, 强制转为竖屏, 这就用到了下面强制转屏的方法;

    我们在使用的时候肯定是在BviewWillAppear方法里发送通知告诉跟视图要自动旋转, 而在离开这个视图时, 就有可能会在viewWillDisappear方法里发送不能自动旋转的通知, 这样是不能实现效果的, 应该放在viewDidDisappear方法里发送;
    为严谨起见, 建议在viewDidAppear方法里发送可以自动旋转的通知, 在viewDidDisappear方法里发送不可以自动选择的通知.
    这里使用的通知来告知跟视图是否自动旋转, 也可以使用NSUserDefaults 来传递这个值, 或者单例都可以.

    到此,对于控制屏幕的旋转及方向,基本就介绍完了,如果有不足或者不对的地方,还请指正;如果你有更好的方式实现同样的效果,还请不吝赐教...

    附加

    最后介绍一个强制旋转屏幕的方法,这个方法可以在进入某个视图时,强制转成你需要的屏幕方向,用的比较多的是在一个竖屏的应用中强制转换某一个界面为横屏(例如播放视频):

    PS: 这个方法的使用有个前提, 一定是在跟视图的-(BOOL)shouldAutorotate返回值为YES的时候才有效.

    //强制旋转屏幕  
    - (void)orientationToPortrait:(UIInterfaceOrientation)orientation {  
        SEL selector = NSSelectorFromString(@"setOrientation:");  
        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];  
        [invocation setSelector:selector];  
        [invocation setTarget:[UIDevice currentDevice]];  
        int val = orientation;  
        [invocation setArgument:&val atIndex:2];//前两个参数已被target和selector占用  
        [invocation invoke];  
          
    }  

    使用的时候,只需要把你需要旋转的方向传过去即可!
    有一点需要注意:从A进入B的时候, 把B强制转换成横屏,返回的时候,需要在A出现的时候再转换为原来的方向,不然会有问题;个人建议可以在BviewWillAppear调用这个方法,转换屏幕(例如转换为横屏),然后在AviewWillAppear中转换回来; 如果使用通知来告诉跟视图是否可以自动旋转, 这个方法要在通知发送之后调用.

    具体效果及设置, 可参考demo: LZInterfaceRotation

    (完)

    展开全文
  • 版改成竖屏,并且做到画面满屏,无黑边。顺便还会分享现在抖音、朋友圈、影视圈最流行的竖版视频排版方式的制作技巧。 方法1:利用爱剪辑将版视频剪成竖版,效果酷炫让你立马拿到超多赞 第一步:打开爱剪辑,在...

    现在很多手机社交媒体上,都比较流行竖版视频。那么横版视频如何变成竖版?今天教大家两种方法快速搞定!横版改成竖屏,并且做到画面满屏,无黑边。顺便还会分享现在抖音、朋友圈、影视圈最流行的竖版视频排版方式的制作技巧。
    方法1:利用爱剪辑将横版视频剪成竖版,效果酷炫让你立马拿到超多赞

    第一步:打开爱剪辑,在新建框设置分辨率,将视频设置为竖版的尺寸

    打开软件后,在弹出的新建框中,把视频大小处的下拉框选择为“自定义分辨率”,然后再后面的小方框内填上竖版视频的分辨率大小,比如720×1080;然后再把自己的视频导入进来即可。
    在这里插入图片描述
    第二步:通过加贴图的功能使竖版视频的画面满屏

    横版视频变成竖版后,为了防止画面变形,使画面效果达到最佳,软件会自动填充黑边。下面就接着介绍让画面满屏的技巧。
    在这里插入图片描述
    现在抖音、朋友圈等社交平台,甚至可以看到不少影视剧的宣传,都是中间横屏视频,上下以图片的形式,打造整体是竖版视频的画面感,这种效果现在十分流行。

    我们只需要在第一步的基础上,通过叠加素材—加贴图的功能,为上下都加上贴图,这样整体效果就是满屏的,而且还能做出抖音的火爆效果,还是很值得学习的。
    在这里插入图片描述
    第三步:还可以在上下加上酷炫字幕,使画面效果更佳

    在爱剪辑界面顶部选择“字幕特效”,然后双击视频预览框,输入字幕内容。为字幕一键运用各种高大上的字幕特效,火爆效果你值得拥有。
    在这里插入图片描述
    方法2:通过MP4/RM转换专家直接把横版视频裁剪成竖版视频的画面比例,超级方便

    第二种方法也非常简单好上手,直接用MP4/RM转换专家去裁剪画面尺寸,把横版视频剪成竖版视频的画面比例即可。
    在这里插入图片描述
    第一步:先把横版视频导入到软件中

    打开MP4/RM转换专家,把自己的横版视频导入进来。
    在这里插入图片描述
    第二步:选择导出的视频格式

    然后选择导出为“电脑上使用的AVI/MPEG4格式”。
    在这里插入图片描述
    第三步:设置视频的参数,支持导出高清的画质

    可以选现在比较流行的H.264编码器,然后视频的比特率、分辨率都能自己调整。输出1080P全高清的视频完全没有问题的。
    在这里插入图片描述
    第四步:直接进行画面裁剪,把横版视频裁剪成竖版视频的大小

    利用MP4/RM转换专家的“人性化影片画面裁剪功能”,在宽和高处设置自己想要的竖屏画面比例,比如720×1080,点击确定。最后直接开始转换即可。
    在这里插入图片描述

    展开全文
  • 很多时候,项目中都有这样的需求:APP中以竖屏为主,个别界面会要求横屏显示,或者要根据用户的手机朝向自动切换横竖屏;下面就来详细讲解,在项目中怎么使用代码来控制APP的界面转换. 首先,要想APP支持多个方向,需要在...


    http://www.jianshu.com/p/650ba0ff626b


    很多时候,项目中都有这样的需求:APP中以竖屏为主,个别界面会要求横屏显示,或者要根据用户的手机朝向自动切换横竖屏;下面就来详细讲解,在项目中怎么使用代码来控制APP的界面转换.
    首先,要想APP支持多个方向,需要在工程进行设置支持的朝向:
    General-->Deployment Info-->Device Orientation中进行设置
    这样,就可以在项目中使用代码来控制页面的朝向了,在这之前,需要知道控制视图是否能够自动旋转,以及支持的朝向,是通过哪些方法来控制的?
    其实,主要使用的是下面三个方法:

    / New Autorotation support.  
    //是否自动旋转,返回YES可以自动旋转  
    - (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;  
    //返回支持的方向  
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;  
    // Returns interface orientation masks.  
    //这个是返回优先方向  
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;


    一般情况下,实现前两个方法即可!这些都是UIViewController的实例方法,直接在需要设置的控制器内重写上面的方法即可;
    有时候,你会发现,只有在APP启动时出现的第一个界面内重写上面的两个方法,会有效果;而在其他的界面重写,并没有效果.这是因为,程序启动后的第一个界面是程序的跟视图控制器,而这些设置,必须是影响了跟视图中的相应设置,才会有效果;
    假如,你在跟视图中进行了如下设置:

    - (BOOL)shouldAutorotate{  
        return NO;  
    }
    那么,在整个项目中,无论你如何设置,都不会有自动旋转屏幕的效果.
    综上可知,如果要改变某个视图屏幕方向,需要告诉跟视图,在跟视图中修改为相应的设置即可;
    所以,问题来了,怎么告诉跟视图呢?这要视情况而定:

    1.当前viewController就是跟视图控制器

    这种情况最简单,直接在控制器中重写上面的方法,设置是否支持自动旋转,以及支持的方向即可:

    - (BOOL)shouldAutorotate{
        return YES;
    }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
    - (NSUInteger)supportedInterfaceOrientations
    #else
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations
    #endif
    {
        return UIInterfaceOrientationMaskAll;
    }

    像上面我设置为支持自动旋转,支持所有的朝向;但是这种情况很少见...


    2.项目的跟视图控制器是导航(UINavigationController)

    这种情况比较常见,也很简单;一般使用的导航的时候,都不会去直接使用系统的UINavigationController,而会定义一个他的子类,做一些公共的设置:

    #import <UIKit/UIKit.h>
    
    @interface BaseNaviViewController : UINavigationController
    
    @end

    然后在导航的viewController里面重写上面的三个方法,这里也有两种方式来控制:

    2.1设置最后一个push的viewController

    这种方式,主要是用在,当push到某个视图控制器时,要求他能够支持自动旋转,或者强制转为横屏;这里主要用到了导航的viewControllers属性,这是一个数组,数组的最后一个元素,就是最后push进去的viewController,所以,实现代码如下:


    -(BOOL)shouldAutorotate  
    {  
        return [[self.viewControllers lastObject] shouldAutorotate];  
    
    }  
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0  
    - (NSUInteger)supportedInterfaceOrientations  
    #else  
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations  
    #endif  
    {  
         return [[self.viewControllers lastObject] supportedInterfaceOrientations];  
    }  
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {  
    
        return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];  
    }

    到这里还没有结束,这里只是获取到了最后一个push的viewController,然后用它去调用了相应的方法,具体的方法实现,还是需要在哪个viewController里进行设置的,也就是在需要特殊设置的viewController里重写上面的方法:


    -(BOOL)shouldAutorotate
    {
        return YES;
    }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
    - (NSUInteger)supportedInterfaceOrientations
    #else
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations
    #endif
    {
        return UIInterfaceOrientationMaskPortraitUpsideDown;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    
        return UIInterfaceOrientationPortraitUpsideDown;
    }

    其实这样也就是告诉跟视图控制器,这个界面我要特殊设置一下;


    2.2设置指定的控制器

    第一种方法是,只要push进去一个视图控制器,都可以进行相应的设置,而这种方法是只针对特定的控制器进行设置,例如这里,我需要把SecondViewController单独设置为支持横屏,只需要将第一种方法中的导航里的相应代码做如下修改:

    -(BOOL)shouldAutorotate
    {
        if ([[self.viewControllers lastObject]isKindOfClass:[SecondViewController class]]) {
            return YES;
        }
    
        return NO;
    }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
    - (NSUInteger)supportedInterfaceOrientations
    #else
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations
    #endif
    {
        if ([[self.viewControllers lastObject]isKindOfClass:[SecondViewController class]]) {
                    return UIInterfaceOrientationMaskLandscapeLeft;
                }
    
        return UIInterfaceOrientationMaskPortrait;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    
        if ([[self.viewControllers lastObject]isKindOfClass:[SecondViewController class]]) {
            return UIInterfaceOrientationLandscapeLeft;
        }
    
        return UIInterfaceOrientationPortrait;
    }

    这样的好处是,可以控制指定的视图控制器,也不用在指定的视图控制器内再重写上面的方法;
    坏处就是,如果需要控制的视图控制器比较多的话,加的判断会多很多;没有方式一灵活;

    3.跟视图控制器是UITabbarController

    这种情况比较常见,项目的跟视图控制器是一个UITabBarController,这种情况的实现相对来说要复杂一些,但是,明白了原理,总是有方法来实现的.归根结底,也就是告诉跟视图,我这个界面需要支持旋转了;
    由于,在UITabBarController里直接获取到UIViewController比较困难,所以这里我采用通知的形式,来获取相应的设置状态;
    首先,设置一个全局的BOOL值,用于接收通知发送的参数:

    #import <UIKit/UIKit.h>
    
    @interface BaseTabBar : UITabBarController
    {
        BOOL shouldAutorotate;  
    }
    @end

    然后注册一个通知:

    //注册旋转屏幕的通知
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(autorotateInterface:) name:@"InterfaceOrientationNotification" object:nil];

    实现通知方法:

    -(void)autorotateInterface:(NSNotification *)notifition
    {
        shouldAutorotate = [notifition.object boolValue];
    }

    然后在重写的方法里加入判断:

    /** 
     * 
     *  @return 是否支持旋转 
     */  
    -(BOOL)shouldAutorotate  
    {  
        NSLog(@"======%d",shouldAutorotate);  
        if (!shouldAutorotate) {  
            return NO;  
        }else{  
            return YES;  
        }  
    }  
    
    /** 
     *  适配旋转的类型 
     * 
     *  @return 类型 
     */  
    -(UIInterfaceOrientationMask)supportedInterfaceOrientations  
    {  
        if (!shouldAutorotate) {  
            return UIInterfaceOrientationMaskPortrait;  
        }  
        return UIInterfaceOrientationMaskAllButUpsideDown;  
    }

    这里我直接将支持的方向写死了,只是判断了一下是否支持自动旋转屏幕,如果需要将支持的方向传过来,可以修改通知携带的参数;
    最后在需要自动转屏的控制器内发送通知:

    [[NSNotificationCenter defaultCenter] postNotificationName:@"InterfaceOrientationNotification" object:@"YES"];

    到此,对于控制屏幕的旋转及方向,基本就介绍完了,如果有不足或者不对的地方,还请指正;如果你有更好的方式实现同样的效果,还请不吝赐教...

    //强制旋转屏幕  
    - (void)orientationToPortrait:(UIInterfaceOrientation)orientation {  
        SEL selector = NSSelectorFromString(@"setOrientation:");  
        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];  
        [invocation setSelector:selector];  
        [invocation setTarget:[UIDevice currentDevice]];  
        int val = orientation;  
        [invocation setArgument:&val atIndex:2];//前两个参数已被target和selector占用  
        [invocation invoke];  
    
    }

    使用的时候,只需要把你需要旋转的方向传过去即可!
    有一点需要注意:从A进入B的时候,把B强制转换成横屏,返回的时候,需要在A出现的时候再转换为原来的方向,不然会有问题;个人建议可以在B的viewWillAppear调用这个方法,转换屏幕(例如转换为横屏),然后在A的viewWillAppear中转换回来;


    Demo下载地址:https://github.com/fenglingdeyi/InterfaceRotationTest


    关于横竖屏切换更多的资料:http://blog.csdn.net/a351945755/article/details/39159263




    展开全文
  • 如图所示,第一个是向,第二个是向倒过来,第三个右,第四左,最后一个是自动旋转就是根据你的手机来旋转了。 //下面代码将屏幕的方向设置为横向显示 Screen.orientation = ScreenOrientation....
  • 在小米4c 和 400*800的竖屏 手机测试都正常不过16.9的是右边有一条缝隙而 自适应的是左边。 但是在pad手机上进去的横屏肯定是没问题的,然后切换为全屏 横屏,状态栏隐藏,16:9的表现是 横屏高度...
  • iOS强制闪屏竖屏

    2019-04-04 11:18:08
    手机App内部支持横竖屏切换,但是闪屏只支持竖屏,应该怎么设置呢? 开发过程中忽略了调试设备的转屏开关问题,设备转屏开关是关闭的,后来才发现,打开设备转屏开关后,当设备横屏进入时,App的闪屏也会横屏显示,...
  • 微信小程序设置横屏之后原本的rpx单位就不再适用。 rpx:屏幕宽度是固定的 750rpx,也就是说:5rpx == 5 / 750 * 屏幕宽度,竖屏切换成横屏,屏幕宽度就会变大,5rpx也会随即变大。字体也就变大了。 有人说用px解决...
  • 在平常使用手机观看视频的时候,很多人希望手机屏幕可以自己旋转为横屏状态,在使用微信聊天的时候再自动转为竖屏,这种切换可以直接利用控制中心的一个功能来实现。 如何开启苹果手机的屏幕旋转?首先我们需要打开...
  • 1.打开谷歌浏览器,选中右上角的“三个点” . 2.勾选 “桌面版网站” 3.打开百度试一下,可以了 ...4.发现是竖版屏幕,如果手机横屏失败,需要设置一下 5.设置完成,手机横放,发现可以啦! ...
  • 一个界面布局,有调用系统相机拍照功能,布局的Activity在Mainifest.xml文件里面设置为android:screenOrientation="portrait",在其他类型的手机上拍照没有横竖屏切换,可是在三星上调用系统拍照后出现了横竖屏的切换...
  • 随着当今智能手机的不断发展,越来越多的功能在手机上涌现,今天小编说的就是教大家小米...第二步、之后我们在录制主页显示横屏竖屏两种不同的录制模式,一般来说横屏是用来录制全屏游戏的,而竖屏主要用于展示...
  • 在android上用opencv做一个项目,但是当手机竖着拿的时候,预览的图像是着的,请问怎么实现着拿手机,图像也是着的。不用在AndroidManifest.xml中配置android:screenOrientation="landscape"设置屏幕方向这个...
  • 然后我将手机切换成横屏模式,正确的情况应该是heightRatio和widthRatio的值调换一下顺序,这样才能够适配横屏,但是当我切换横屏模式后它们没有被调换,导致横屏使用的比例是竖屏的比例&#...
  • 横竖屏设置 解决Android手机 屏幕横竖屏切换 Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不...
  • 关于自定义相机预览界面拉伸问题 ...手机横屏的情况下Camera返回为0度 ,如果设置顺时针旋转90度,就回旋转 怎么设置预览界面与实景保持一致的方法,官方给出的文档: public static void setCa
  • 创建新项目后,会自动创建一个未保存的场景,这时发现Canvas节点的Size默认是横屏的,而开发手机游戏是希望自动竖屏的,即size自动设置到我们的设计图分辨率,想要下次创建场景Canvas自动竖屏,可以到菜单栏->...
  • 上传手机拍摄的,如果是先上传到阿里服务的,再读取资源的宽高就没问题,如果是本地直接读取,就会发现视频还是变形了,实验了下,才发现手机虽然是竖屏拍的视频, 但是分辨率是1920*1080,看下图 发现问题了吧...
  • 手机竖屏切换成横屏时我们通常需要调整程序的UI布局以适应屏幕; 或者更进一步当手机的方向发生变化时,如果我们也想让程序的UI随之改变该怎么做呢?那么本文就为大家介绍一种思路。 使用sensor感知方向...
  • 新增:支持相机按钮位置设置,setCameraLocation(@Setting.Location int cLocation)//默认左下角,通过设置设置为相册第一张图片的位置 优化:预览页 感谢:该版本由joker-fu、SMask贡献 提示:新的api详见wiki ...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

手机怎么设置横屏竖屏