处理屏幕旋转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理屏幕旋转相关的知识,希望对你有一定的参考价值。
1.获取HOME键方向
视图控制器本身能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写方法
supportedInterfaceOrientations(设置设备支持旋转的方法, 如果不添加,视图控制器将无法检测到屏幕的旋转)
旋转后键盘收回
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
视图控制器会自动调整view的大小以适应屏幕的旋转,bounds被修改,触发view的layoutSubviews的方法
所以重写layoutSubviews方法,根据设备方向,重新布局
layoutSubviews方法:这个方法,默认没有做任何事情,需要子类进行重写
注意:layoutSubviews在以下情况下会被调用:
- init初始化不会触发layoutSubviews
- 但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发
- addSubview会触发layoutSubviews
- 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
- 滚动一个UIScrollView会触发layoutSubviews
- 旋转Screen会触发父UIView上的layoutSubviews事件
- 改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
2.获取状态栏的方向
[UIApplication sharedApplication].statusBarOrientation
以上是关于处理屏幕旋转的主要内容,如果未能解决你的问题,请参考以下文章
Android 片段不保存状态,在旋转/屏幕锁定/返回时崩溃