ios开发强制横竖屏转换

第一种:手动的设置界面元素的旋转,包括状态栏、导航栏和视图。以下代码为从竖屏设置为横屏,坐标系是以竖屏的为基准,所以会出现负数的坐标值。

//设置状态栏旋转

[[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationLandscapeRightanimated:YES];

CGFloat duration = [UIApplication sharedApplication].statusBarOrientationAnimationDuration;

//设置旋转动画

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:duration];

//设置导航栏旋转

self.navigationController.navigationBar.frame = CGRectMake(-204, 224, 480, 32);

self.navigationController.navigationBar.transform = CGAffineTransformMakeRotation(M_PI*1.5);

//设置视图旋转

self.view.bounds = CGRectMake(0, -54, self.view.frame.size.width, self.view.frame.size.height);

self.view.transform = CGAffineTransformMakeRotation(M_PI*1.5);

[UIView commitAnimations]

第二种切换到下一个页面强制转横屏

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 = UIInterfaceOrientationLandscapeRight;

[invocation setArgument:&val atIndex:2];

[invocation invoke];

}

时间: 2024-10-29 19:05:42

ios开发强制横竖屏转换的相关文章

移动视频开发中横竖屏转换遇到的BUG(Android)

剧情铺垫:首先申明,我是一个Android初学者.最开始我们想做一个视频通话软件,很快就找到了AnyChat.但当时用的是官网的demo,只支持横屏.我们想做成横竖屏都支持的效果. 遇到的问题 1.自己的视频会被对方的视频挡住 2.自己的视频横竖比例不对 3.自己的视频将音量条挡住 4.自己的视频不能居中 问题1的处理 尝试1:由于较熟悉web方面的知识,最先想到用z-index控制View的叠放,结果悲剧的没找到z-index类似物 尝试2:Android中,xml排在后的会覆盖排在前的,但这

禁止横竖屏切换、强制横竖屏:

js判断屏幕横竖屏:function orient() {        //alert('gete');        if (window.orientation == 0 || window.orientation == 180) {            $("body").attr("class", "portrait");            orientation = 'portrait';            return f

iOS iPad开发之横竖屏适配

1. 做横竖屏适配的时,需要判断当前状态是横屏还是竖屏,有两种方法: 第1种:[UIScreen mainScreen].bounds.size.width == 768 优点:把这个抽成宏之后,随时可以判断横竖屏, #define Lanscape ([UIScreen mainScreen].bounds.size.width == 768) 缺点:只在iOS8可行,也就是说在iOS8中横屏的width=1024,竖屏的width=768; 而在iOS7上,横竖屏的width=768 第2种

(一〇八)iPad开发之横竖屏适配

在iPad开发中,横竖屏的视图常常是不同的,例如侧边栏Dock,在横屏时用于屏幕较宽,可以展示足够多的内容,每个按钮都可以展示出标题:而竖屏时Dock应该比较窄,只显示图标不现实按钮标题. iPad比较重要的知识是不同类型设备的宽高在以点为单位的图形坐标系下固定为768x1024,因此常常利用此值来判断横竖屏. 768.1024.横竖屏判断很常用,可以定义一个公共的常量文件来放这些内容. [常量和宏的定义] ①在.m文件中,定义变量,加上const,注意指针(例如NSString*)使用的是常量

cocos2d-x游戏开发屏幕横竖屏切换

android解决方案: 1.在游戏的主activity中编写一个静态方法(继承Cocos2dxActivity) public static void changedActivityOrientation(int orientation){ switch(orientation) { case 1://横屏 instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case 2://竖

ios某个控制器强制横竖屏

在控制器的 .m 中实现 -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskPortrait;       //(竖屏) } UIInterfaceOrientationMaskLandscape  //(横屏)

【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)

关于AutoLayout,最早从iOS6开始引入使用. 主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换. 网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少.对于我这个习惯了代码UI布局的人,写个备忘: AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约束的,描述性的布局系统. Auto Layout Is a Constraint-Based, De

ios开发中的矩阵转换

最近在研究CoreText看了很多的例子其中有很多地方不是特别理解所以上网收集了IOS矩阵的转换原理来记录下 本文转载自:http://blog.csdn.net/lamp_zy/article/details/8474818 CGAffineTransformMake(a,b,c,d,tx,ty) ad缩放bc旋转tx,ty位移,基础的2D矩阵 公式 x=ax+cy+tx    y=bx+dy+ty 1.矩阵的基本知识: struct CGAffineTransform {  CGFloat

强制横竖屏间切换

if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) { SEL selector = NSSelectorFromString(@"setOrientation:"); if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) { NSInvocation *invocation = [NS