iOS 获取横竖屏的方法和问题
来源:互联网 发布:python处理json字符串 编辑:程序博客网 时间:2024/06/02 04:48
关于 横竖屏切换后的检测 ,查看了很多篇文章,通过自己实践总结了一下。我的屏幕切换判断都是在UIView上面
第一种就是UIView 的
layoutSubviews方法里面 ,什么时候会调用这个方法呢?我也是查看其他博客的文章总结如下
1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
也就是说 旋转屏幕是会触发这个layoutSubviews方法,但是 (这里出现了问题 我也不知道为什么,就是在使用iPad 的时候,我的自定义controller没有用sb,添加了一个自定义的UIView UIView 里面重写了layoutSubviews方法 当我切换的时候 ,很奇怪并没有调用 ,查找了很多但是还是没有找到为甚?所以这个方法只适合iPhone ,我朋友说的是iPad 如果是在7.0的话修改一下代码可以判断,但是在8.0以上就不行了 — - !);言归正传,如何去检查是横屏还是竖屏呢,在其他博客里面讲的很好 获取电池的方向来 判读屏幕的方向。<pre name="code" class="objc"><pre name="code" class="objc">-(void)layoutSubviews{ [super layoutSubviews];// 获取电池的方向 UIInterfaceOrientation interfaceOrientation = [UIApplication sharedApplication].statusBarOrientation; if(interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown){ [self setVerticalFrame]; } else if(interfaceOrientation == UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight){ [self setHorizontalFrame]; }}
第二种就是 通过添加通知
在我们UIView上面添加一个通知 UIDeviceOrientationDidChangeNotification
屏幕改变的就会触发。在通知的方法里面添加上面的代码即可
经过测试。。适用于iphone 和ipad
0 0
- iOS 获取横竖屏的方法和问题
- iOS横竖屏的问题
- ios横竖屏问题
- iOS横竖屏问题
- iOS 横竖屏走的方法
- iOS [UIScreen mainScreen].bounds 横竖屏在不同版本获取屏幕大小不对的问题
- 横竖屏切换问题ios
- iOS横竖屏转换问题
- iOS修改启动的时候的横竖屏的方法
- js 判断横竖屏切换,获取宽高的问题
- iOS---iphone----ipad 横竖屏监听的方法
- iOS 屏幕横竖屏转换的方法
- ios播放器横竖屏切换的问题
- 关于横竖屏切换获取和设置布局的补充
- ios 横竖屏的使用
- iOS 的横竖屏锁定
- iOS的横竖屏切换
- IOS 永远保持横竖屏方法
- The huge demand of film faced plywood in the following 5 years
- centos 安装rar解压工具
- oc中的设计模式
- Scala讲座:类型系统和相关功能
- ArrayAdapter.add方法UnsupportedOperationException
- iOS 获取横竖屏的方法和问题
- Eclipse更新ADT较慢的解决方法
- DFS的时间戳应用
- iOS开发系列之常用自定义控件开发集—自定义状态栏消息提示控件开发
- myeclipse修改默认启动空间
- POJ 2533 Longest Ordered Subsequence (模版LIS)
- C++ 11 Lambda表达式
- HTK
- iOS并发编程