屏幕旋转调用的方法
来源:互联网 发布:淘宝开店流程步骤ppt 编辑:程序博客网 时间:2024/05/18 22:50
UIDeviceOrientation 是机器硬件的当前旋转方向 这个你只能取值 不能设置
UIInterfaceOrientation 是你程序界面的当前旋转方向 这个可以设置
下面这两个方法只有在控制器中才能使用,如果在一般的view中使用layoutsubviews;
1.//将要旋转到某个方向的时候调用此方法(iOS8之前)
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
//Landscape : 横屏 Portrait: 竖屏
// 传入一个方向值, 如果是横屏, 则返回YES
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
NSLog(@"横屏");
}
// 传入一个方向值, 如果是竖屏, 则返回YES
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
NSLog(@"竖屏");
}
}
2.#pragma mark iOS8以后的方法
// 如果实现了iOS8以后的方法, 则旧版方法会覆盖
//视图发生了大小改变的时候会调用此方法 大小改变 == 横竖切换
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
NSLog(@"size; %@", NSStringFromCGSize(size));
// 建议如果背景色不一致的情况下, 做动画同步的处理, 否则视觉上很不舒服
//动画同步 --> 系统默认0.25 而选择是0.4
[UIView animateWithDuration:[coordinator transitionDuration] animations:^{
//方法一:
if (size.width == HMScreenMaxWidth1024) {
NSLog(@"横屏");
self.dockView.width = HMDockMaxWidth;
self.dockView.height = HMScreenMinWidth768;
} else {
NSLog(@"竖屏");
self.dockView.width = HMDockMinWidth;
self.dockView.height = HMScreenMaxWidth1024;
}
}];
//方法二
// if (size.width > size.height) {
// NSLog(@"横屏");
// }
//方法三 orientation: 方向
// if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft || [UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) {
// NSLog(@"横屏");
// }
}
4.
AppDelegate下面的屏幕旋转方法
#pragma mark - 屏幕旋转的//- (UIInterfaceOrientationMask)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window//{// return UIInterfaceOrientationMaskPortrait;//返回竖屏//}
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- {
- //宣告一個UIDevice指標,並取得目前Device的狀況
- UIDevice *device = [UIDevice currentDevice] ;
- //取得當前Device的方向,來當作判斷敘述。(Device的方向型態為Integer)
- switch (device.orientation) {
- case UIDeviceOrientationFaceUp:
- NSLog(@"螢幕朝上平躺");
- break;
- case UIDeviceOrientationFaceDown:
- NSLog(@"螢幕朝下平躺");
- break;
- //系統無法判斷目前Device的方向,有可能是斜置
- case UIDeviceOrientationUnknown:
- NSLog(@"未知方向");
- break;
- case UIDeviceOrientationLandscapeLeft:
- NSLog(@"螢幕向左橫置");
- break;
- case UIDeviceOrientationLandscapeRight:
- NSLog(@"螢幕向右橫置");
- break;
- case UIDeviceOrientationPortrait:
- NSLog(@"螢幕直立");
- break;
- case UIDeviceOrientationPortraitUpsideDown:
- NSLog(@"螢幕直立,上下顛倒");
- break;
- default:
- NSLog(@"無法辨識");
- break;
- }
- // Return YES for supported orientations
- return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); // 只支持向左横向, YES 表示支持所有方向
- }
- 屏幕旋转调用的方法
- 手动屏幕旋转的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时Activity不重新调用onCreate的方法
- ios6中shouldAutorotateToInterfaceOrientation屏幕旋转方法不调用
- 屏幕旋转时阻止Activity自动调用Oncreate()方法
- WinCE 实现屏幕旋转的方法
- wince实现屏幕旋转的方法
- iOS 禁止屏幕旋转的方法
- iOS两个强制旋转屏幕的方法
- iOS两个强制旋转屏幕的方法
- iOS两个强制旋转屏幕的方法
- iOS两个强制旋转屏幕的方法
- iOS两个强制旋转屏幕的方法
- Android 屏幕的旋转 onConfigurationChanged方法
- B树代码
- Ubuntu安装搜狗拼音
- DELPHI基于线程的定时器和一个泛型对象池
- JAVA WEB学习--环境配置
- MOS(Doc ID 1029252.6)最佳实践
- 屏幕旋转调用的方法
- JAVA设计模式
- sql server ddl触发器限制用户创建表
- bootstrap2.x与3的区别
- Android基础——2.Android Studio
- java .class
- 浅谈iOS视频开发 - 小书sky
- 占位2——自定义Dialog,写工具类DialogUtils
- 优质博主【收藏】