小胖说事30------iOS 强制转成横屏的方式
一直遇到这个问题,今天最终找到了解决方法.
在我们的项目中常常遇到横竖屏切换,而又有某个特定的界面必须是特定的显示方式(横屏或竖屏).这就须要例如以下的处理了.
强制转成横屏: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];
}
方法二: 通过推断状态栏来设置视图的transform属性。
- (void)deviceOrientationDidChange: (NSNotification *)notification
{UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];CGFloat startRotation = [[self valueForKeyPath:@"layer.transform.rotation.z"] floatValue];CGAffineTransform rotation;switch (interfaceOrientation) {case UIInterfaceOrientationLandscapeLeft:rotation = CGAffineTransformMakeRotation(-startRotation + M_PI * 270.0 / 180.0);break;case UIInterfaceOrientationLandscapeRight:rotation = CGAffineTransformMakeRotation(-startRotation + M_PI * 90.0 / 180.0);break;case UIInterfaceOrientationPortraitUpsideDown:rotation = CGAffineTransformMakeRotation(-startRotation + M_PI * 180.0 / 180.0);break;default:rotation = CGAffineTransformMakeRotation(-startRotation + 0.0);break;}view.transform = rotation;
}
说明一下:假设实现了下边的两个方法。你的应用程序在初始化的时候有多少个controller就会走多少次下边两个方法。showldAutorotate这种方法是再你即将旋转屏幕的时候,就会再次调用,仅仅要在这里推断好YES或者NO就好了。
在你须要的时候通过shouldAutorot这个变量打开,不须要的时候关闭就能够了。有什么不明确的,能够增加上边的QQ群。里边问我。
-(BOOL)shouldAutorotate //是否支持旋转。假设为NO,则下边的方法就不会调用,假设为YES,才会调用
{if (!shouldAutorot) {return NO;}else{return YES;}
}-(NSUInteger)supportedInterfaceOrientations
{return UIInterfaceOrientationMaskAllButUpsideDown;
}
转载于:https://www.cnblogs.com/cxchanpin/p/6955823.html
小胖说事30------iOS 强制转成横屏的方式相关推荐
- Flutter android及ios强制竖屏/横屏
Flutter android及ios强制竖屏/横屏 在main.dart内设置即可 在main.dart内设置即可 void main(){WidgetsFlutterBinding.ensureI ...
- iOS强制切换横屏、竖屏
切换横竖屏最直接的方式是调用device的setOrientation方法.但是从sdk3.0以后,这个方法转为似有API,如果要上AppStore的话,要慎用! if ([[UIDevice cur ...
- [iOS]关于iOS中界面视图横屏/竖屏切换的问题总结
最近在项目中有个这样的需求:整个APP中界面也竖屏为主,且不能自动横竖屏切换,个别页面可以根据手机的方向横竖屏切换;其实实现起来也并不难,关于视图是否能旋转主要还是有没有设置支持,在工程的Genera ...
- 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )
此文章参考<深入理解计算机系统>P31. 先看如下代码: 12345的十六进制表示为:0x00003039 1 #include <stdio.h> 2 3 int main ...
- C语言Socket编程为什么要将sockaddr_in强制转换成sockaddr?
在阅读尹圣雨<TCP/IP网络编程>(C语言示例)的时候,看到将sockaddr_in类型的struct的指针强制转换成了sockaddr类型的指针. 比如hello_client.c: ...
- c语言char数字转int补位,关于char强制转换成int到底是用0还是用1补位的猜想与检验...
关于char强制转换成int到底是用0还是用1补位的猜想与检验 最近学C语言发现char强制转换时值会完全不同,而且变化很大,于是决定写代码测试一下. 先检验一下char型的-3和3在内存中分别怎么表 ...
- php强制转成字符串,php怎么强制转成字符串
php强制转成字符串的方法:首先创建一个PHP示例文件:然后定义一个变量:最后通过PHP中的string方法强制转换成字符串即可. 本文操作环境:windows7系统.PHP7.1版,DELL G3电 ...
- android 布局可大可小,UI设计教程之:ios与android ui适配(将IOS UI转换成Android经验畅谈)...
内容提要:这是UI设计系列教程之ios与android ui适配经验畅谈.文章作者介绍了自己将IOS UI转换成Android经验,包括:不要直接转换.了解单位和组件缩放格式.屏幕尺寸DP和像素的换算 ...
- python 强制转换成字符_Python笔记(三)
来源网络 「往期回顾」 Python笔记(一) Python笔记(二) 「本期内容」 1.用户输入与while循环 2.函数 3.模块 哈喽,各位小伙伴们,大家上午好!话说,你们知道今天是什么日子么? ...
最新文章
- MySQL之pymysql模块
- php mysql execute语法_PHP PDOStatement::execute讲解
- 新书 | 经典教材应用随机过程出第12版啦!
- Android locksettings/gatekeeper代码导读
- Linux:入门基础
- rust布料怎么弄_布料“难弄”,你需要从这六方面解决!
- 相机矩阵(Camera Matrix)
- 复习JavaFile类_递归_综合案例
- Jupyter notebook中怎么添加Pytorch运行环境
- django 1.8 官方文档翻译:9-1-4 格式本地化
- 【OpenCV学习笔记】【函数学习】六(cvCreateImage()函数)
- 价值函数与贝尔曼方程
- Linux Bridge
- 《7天精通直播带货》运营型主播成长型,提升直播能力与技巧
- golang json 格式化输出对象
- 8.23 正点原子领航者V1开发板学习之EEPROM
- 【Neo4j】SOLVED:java.lang.RuntimeException: Error starting Neo4j database server
- natapp自动获取免费的动态端口域名
- Dubbo原理简单分析
- IT行业的各岗位职责
热门文章
- 如何将远程服务器MYSQL数据库导出导入
- 正确地组织python项目的结构
- virus.win32.xorer病毒
- 静态库.a和动态库.so的制作
- excel html modify,Modify excel cell
- 三坐标测量圆直径_多台三坐标测量机联动测量方法的研究
- EPERM: operation not permitted, Please run SwitchHosts
- BTC36 CLUB国际基金拟向美国SEC提交那斯达克股票上市申请
- dHedge DAO和一些顶级基金向基金管理者投资14.5万sUSD
- 自动化审批决策树助你面试更上一层楼