iOS屏幕变换的处理(2)
来源:互联网 发布:无人机编程开发 教程 编辑:程序博客网 时间:2024/06/05 04:17
上一节提到了通过通知来处理屏幕视图的自动翻转。
蓝色的子视图,在翻转的情况下触发界面大小的调整。
还是使用通知机制,即:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doRotateAction:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
不过,这里发现了个问题,当执行通知触发方法的时候,发现总是执行了多次。其中多出来的情况,设备的方向是不对的:
[UIDevice currentDevice].orientation==UIDeviceOrientationUnknown
如上面代码,返回的值是UIDeviceOrientationUnknown,也就是0。只许过滤这种情况即可,下面是比较完整的视图实现代码:
@implementation ContentView-(id)initWithCoder:(NSCoder *)aDecoder{ self = [super initWithCoder:aDecoder]; if (self) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doRotateAction:) name:@”UIDeviceOrientationDidChangeNotification” object:nil]; } return self;}-(void) doRotateAction:(NSNotification *) notification{ if([UIDevice currentDevice].orientation!=UIDeviceOrientationUnknown){ NSLog(@”do rotate action: %d”,[[notification object] orientation]); if([UIDevice currentDevice].orientation==UIDeviceOrientationPortrait|| [UIDevice currentDevice].orientation==UIDeviceOrientationPortraitUpsideDown){ self.frame=CGRectMake(self.frame.origin.x, self.frame.origin.y, 200, 200); }else{ self.frame=CGRectMake(self.frame.origin.x, self.frame.origin.y, 600, 500); } }}-(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self];}
原文地址:http://marshal.easymorse.com/archives/4723
- iOS屏幕变换的处理(2)
- iOS屏幕变换的处理
- iOS屏幕变换的处理(1)
- DataGrid中行变换的处理
- 图像处理的几何变换
- 图像处理学习笔记之图像的几何变换(2)平移变换
- 【IOS移动开发技术】iOS软件开发中关于屏幕旋转处理相关的学习笔记
- 图像处理的仿射变换和透视变换
- 图像处理的仿射变换和透视变换
- 图像处理--图像的几何变换--旋转变换
- 大地坐标系与SVG DOM屏幕坐标之间的变换
- 屏幕旋转角度的处理
- 单机屏幕的处理事件
- Android 屏幕旋转的处理
- 详解iOS开发中处理屏幕旋转的几种方法
- iOS--OC--图片拉伸和尺寸变换,图片简单处理
- 【数字图像处理】图像的简单几何变换
- 傅立叶变换与图像处理的关系
- JIRA 5 发布!
- 基础算法之四--排序:之希尔排序
- 提高网站打开速度的7大秘籍
- linux下的C语言开发(开篇)
- JS 在父页面中获取子页面的返回值
- iOS屏幕变换的处理(2)
- VI/VIM快捷键
- hdu 1872 稳定排序
- 如何使用eclipse创建Maven版本的hsf工程及其子模块
- Ubuntu上搭建Java SE开发环境
- 从零开始学习Sencha Touch MVC应用之二
- GWT开发框架Trufun WebRCP V1.0发布!
- linux下的C语言开发(makefile编写)
- 使用NSKeyedArchiver保存数据