美文网首页
在手机禁用横屏的时候用陀螺仪修改APP屏幕方向

在手机禁用横屏的时候用陀螺仪修改APP屏幕方向

作者: 34码的小孩子 | 来源:发表于2016-04-14 11:36 被阅读1608次

前提:项目必须勾选可以支持横竖屏。

实现方法:

1.使用陀螺仪判断设备的方向:

Z的绝对值是1的时候是水平地面的,是0的时候是垂直地面的。0.5是设置的误差,解决桌面有一点倾斜的时候,手机放置在桌面上会不停地旋转。

2.重写屏幕旋转相关的方法:

- (BOOL)shouldAutorotate;

设置是否支持旋转的,只有返回YES,才会调用下面的两个方法。

 - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration;

旋转前调用的方法,toInterfaceOrientation是即将要旋转的方向,可以在该方法内更新UI布局。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;

旋转后调用的方法,fromInterfaceOrientation是原先的方向,也可以在该方法内更新UI布局,但更推荐用上一个方法。

使用[[UIDevice currentDevice] setValue:value forKey:@"orientation"];手动设置方向之后,系统会自动调用shouldAutorotate;

3.注意:

如果项目中存在只支持竖屏或者横屏的页面,该页面与可支持横竖屏的页面交互的时候会出现某些问题。譬如A页面只支持竖屏,B页面可支持横竖屏。A跳转到B,B页面旋转横屏然后返回A,此时,A是横屏的。为了解决这个问题,需要在A页面的viewDidAppear:方法强制设置屏幕方向。

NSNumber*value = [NSNumbernumberWithInt:UIInterfaceOrientationPortrait];

[[UIDevicecurrentDevice]setValue:valueforKey:@"orientation"];

相关文章

  • 在手机禁用横屏的时候用陀螺仪修改APP屏幕方向

    前提:项目必须勾选可以支持横竖屏。 实现方法: 1.使用陀螺仪判断设备的方向: Z的绝对值是1的时候是水平地面的,...

  • IOS app 开启横屏旋转方法

    手机横屏固定显示某个页面 手机 app 开启横屏, 横屏的时候, 手机显示固定的页面, 不管app 在哪个页面横屏...

  • js如何设置网页横屏和竖屏切换

    手机横、竖屏事件 //屏幕方向标识,0横屏,其他值竖屏var orien...

  • 横竖屏切换 (swift)

    一. 需求 APP中需要支持横屏和竖屏,并在不同的页面 可支持的屏幕旋转方向不一致 整体竖屏,部分强制横屏 整体横...

  • iPad 横屏启动 界面错乱

    现象:iPad 开启屏幕旋转,横屏启动APP,某些特殊情况下,APP会变成横屏APP。恭喜你,中奖了,这时候即使你...

  • iOS横屏竖屏问题

    众所周知,App 默认的方向都是支持左横屏、右横屏和竖屏的。但是在集成视频播放器的时候会用到横屏,那么问题来了。当...

  • iOS 横竖屏处理

    开发中有竖屏和横屏的界面时,我们需要监听屏幕旋转,强制横屏,锁定方向后的屏幕强制旋转等处理.以下做个总结: 一.横...

  • iOS - 自由控制页面横竖屏展示

    有些时候我们需要用特定方向展示某些页面(例如固定横屏展示),而不影响其它页面。例如一些 app 固定用横屏播放视频...

  • Android 禁用横屏的方法

    整个 APP 都禁用横屏模式: 创建一个 BaseActivity ,让所有的 activity 都继承它; 在 ...

  • iOS 页面横竖屏

    当App启动的时候需要强制竖屏,进入App后允许横屏或者竖屏的解决办法: 1、修改App-Info.plist文件...

网友评论

      本文标题:在手机禁用横屏的时候用陀螺仪修改APP屏幕方向

      本文链接:https://www.haomeiwen.com/subject/aeeglttx.html