ios 横竖屏通知
- 屏幕切换时,会发送一个通知。只要注册一个通知:
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(doRotateAction:)
- name:UIDeviceOrientationDidChangeNotification
- object:nil];
然后在方法里做操作:
- -(void) doRotateAction:(NSNotification *) notification{
- if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait
- || [[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown) {
- NSLog(@">>>portrait");
- }else{
- NSLog(@">>>landscape");
- }
- }
如果要在入口文件做切换屏幕,可以判断状态栏的方向:
- ////////////////////////////////////
- //通知委托状态栏已改变,进横竖屏操作
- -(void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation{
- //清除背景,防止上一次转屏的图像残留
- [imageview setBackgroundColor:[UIColor clearColor]];
- //以下是横竖屏4个方向的切换,注意转屏时,无论是转哪个屏。起点坐标都是在portrait方向的起点(0,0)来计算的
- if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait ) {
- NSLog(@">>>portrait"); //home键在下
- imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, 768, 44)];
- imageview.backgroundColor = [UIColor redColor];
- [_window addSubview:imageview];
- }else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown){
- NSLog(@">>>PortraitUpsideDown"); //home键在上
- imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 960, 768, 44)];
- imageview.backgroundColor = [UIColor redColor];
- [_window addSubview:imageview];
- }else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeLeft){
- NSLog(@">>>LandscapeLeft"); //home键在左
- imageview = [[UIImageView alloc] initWithFrame:CGRectMake(20, 0, 44, 1024)];
- imageview.backgroundColor = [UIColor redColor];
- [_window addSubview:imageview];
- }
- else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeRight){
- NSLog(@">>>LandscapeRight"); //home键在右
- imageview = [[UIImageView alloc] initWithFrame:CGRectMake(704, 0, 44, 1024)];
- imageview.backgroundColor = [UIColor redColor];
- [_window addSubview:imageview];
- }
- }
ios 横竖屏通知的更多相关文章
- iOS 横竖屏切换(应对特殊需求)
iOS 中横竖屏切换的功能,在开发iOS app中总能遇到.以前看过几次,感觉简单,但是没有敲过代码实现,最近又碰到了,demo尝试了几种情况,这里就做下总结.注意 横屏两种情况是反的你知道吗? UI ...
- iOS 横竖屏切换解决方案
iOS要实现横竖屏切换很简单,不需要使用任何第三方,只需要实现几个方法就可以了. 1.设置系统支持横竖屏[General]->[Targets]-> [Deployment info]-& ...
- iOS 横竖屏适配
关于横竖屏适配 也没做过,今天读别人的源码,遇到了.为了了解清楚,就系统的学习一下. 一 横竖屏方向枚举 关于横竖屏一共有三种枚举 UIInterfaceOrientation UIInterface ...
- IOS横竖屏控制与事件处理
公司App里面有个需求,即所有界面都是竖屏,且不允许横屏切换,唯独有一个图表界面允许横屏.那么,根据此需求处理如下: 首先,确保App本身应该允许转屏切换: 再次,我的App里面都是走UINaviga ...
- iOS横竖屏切换的一些坑(持续更新)
最近在做视频类的App,遇到视频滚动播放的坑,紧接着就是横竖屏问题.之前太过天真不想做横竖屏配置.只是想旋转视频View,但是分享什么的包括AlertView还是竖屏样式,项目着急上线(1周提交一次也 ...
- iOS横竖屏
现在开发的APP大部分界面是竖屏的,只有视频播放的界面和webview阅读文字的界面是可以横屏操作的. 那么就进行如下处理: 1.首先确保APP支持横屏旋转 2.我的App里面都是走UINavigat ...
- iOS 横竖屏适配 笔记
研究消息转发机制 已经一周多了,但是 还是没整理出博客, 还是先写一个 项目中遇到的 横竖屏适配问题. // 开启自动转屏 - (BOOL)shouldAutorotate { return YES; ...
- 代码处理 iOS 的横竖屏旋转
一.监听屏幕旋转方向 在处理iOS横竖屏时,经常会和UIDeviceOrientation.UIInterfaceOrientation和UIInterfaceOrientationMask这三个枚举 ...
- [iOS]终极横竖屏切换解决方案
[iOS]终极横竖屏切换解决方案 大家的项目都是只支持竖屏的吧?大多数朋友(这其中当然也包括博主),都没有做过横屏开发,这次项目刚好有这个需求,因此把横竖屏相关的心得写成一遍文章供诸位参考. 01.综 ...
随机推荐
- Codeforces Round #270 1003
Codeforces Round #270 1003 C. Design Tutorial: Make It Nondeterministic time limit per test 2 second ...
- cf.301.D. Bad Luck Island(dp + probabilities)
D. Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- crontab用法与实例
导读 在Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息.负载状况:定时执行某些任务/脚本来对远端进行数据采集等.这里将介绍下cronta ...
- Reflow(渲染)和Repaint(重绘)
Reflow(渲染):对于DOM结构中的各个元素都有自己的盒模型,浏览器根据各种样式(浏览器的.开发人员定义的等)来计算,并根据计算结果将元素放到它该出现的位置,这个过程称之为reflow. refl ...
- ion-slide-box,无限循环
ion-slide-box网络加载图片,及时更新,无限循环 does-continue:是否循环切换,开头的幻灯页只能向左滑动,最后的幻灯页只能向右滑动. 将does-continue属性值设为tru ...
- Failed to resolve: junit:junit:4.12
在Android Studio创建项目之后,提示一个junit错误. 解决方案: 第一步:找到build.gradle的file,如图: 第二步: 第三步:把中间行代码"testCompi ...
- static小结
1.隐藏:编译多个文件时,所有未加static的全局变量.全局函数都具有全局可见性. 如果加了static,就会对其他源文件隐藏,利用这一特性可以在不同文件中定义相同的 变量名或函数名,而不用担心冲突 ...
- Python自动化之面向对象进阶
1 静态方法 静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法. class Dog(ob ...
- ThinkPHP在Ubuntu上 : mkdir的使用
问题: 环境:Ubuntu系统,xampp1.8.3-5建站工具 描述:以root的身份运行.Apache的 DocumentRoot = "/var/www" .thinkphp ...
- Response.Redirect()、Server.Execute和Server.Transfer的区别
1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL. 当Response.Redirect()方法被调用时,它会创建一个应答,应答头中 ...