iOS8.1- iOS8.3横屏后部分区域无响应 坐标错乱
2017-07-07 16:51
851 查看
http://www.cocoachina.com/bbs/read.php?tid-244119-page-1.html
iOS8之后只支持竖屏的App中某个界面强制横屏后导致部分区域无响应
强制横屏:iOS7中的场景:Reveal软件监控视图层次的结构
iOS8.1中该视图结构变成了:
参看了UIWindow相关API接口和UIApplication:sharedApplication相关的API接口,iOS8 SDK中并没有新增。
而目前通过[[UIApplication sharedApplication] setStatusOrientation:**];来强转 只会让UIWindow:keyWindow转过来,而UIScreen:mainScreen纹丝不动。(或者反过来说也可以解释上图的现象) 这样就导致了UIWindow上部分点击虽然点击实际上发生在屏幕当中但设备处理时 却判断其超出了屏幕范围的诡异情况。。。
iOS8
[[UIApplication sharedApplication] setStatusOrientation: **] rotation bug
我通过改变UIWindow的frame来对齐UIScreen:mainScreen的Frame,结果是UIWindow上的元素排列非常的混乱。而通过SDK的API接口来强制旋转UIWindow也没有找到。改变UIScreen:mainScreen的Frame似乎也是不可取,因为[[UIApplication sharedApplication] setStatusOrientation:**];这个API接口就是要使得UIScreen:mainScreen呈现现在这个样子的。
keywindow在强制横屏的时候,旋转M_PI_2,从Reveal的视图结构可以看到 UIWindow/UIScreen:mainScreen/UITextEffectsWindow 三者合一了,但是三者跟设备的屏幕硬件
形成了一个90度角.
用了[[UIDevice
currentDevice] setValue: [NSNumber numberWithInteger: UIInterfaceOrientationLandscapeRight] forKey:@"orientation"];之后 问题来了。状态栏没有横过来,卧槽,如果叠加使用[[UIApplication sharedApplication] setStatusOrientation: **];问题又回到原点去了。只好将状态栏在全屏的时候隐藏,要不然自己造一个状态条放上去,顿时蛋很疼啊。iOS8 这里是不是SDK一个显而易见的bug还是怎么滴,感觉不合理啊
UIScreen:mainScreen 和UIWindow:keyWindow通过API接口调用来转屏居然会分道扬镳,这绝对不合理吧 Apple大神!
强制旋转的时候
弃用[[UIApplication sharedApplication] setStatusOrientation: **];使用 [[UIDevice currentDevice] setValue: [NSNumber numberWithInteger: UIInterfaceOrientationLandscapeRight] forKey:@"orientation"]; 就可以三位一体 来旋转啦.但是此方法会导致顶部状态条没有切换,不完美,后期完美的解决方案请看后面的专题文章。
相关文章推荐
- iOS8.1- iOS8.3横屏后部分区域无响应bug 解决办法
- iOS8之后只支持竖屏的App中某个界面强制横屏后导致部分区域无响应
- javascript点击空白位置关闭弹出层/点击包含指定区域但不属于指定区域的部分响应点击事件
- cocos2d屏幕部分区域无法响应触摸事件
- 部分网友会发现Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT
- View坐标,MotionEvent坐标, 二者的转换,可视区域
- 区域坐标离散化
- SilvetLight 实现的一个上传图片时功能动态裁剪部分区域和缩放图片的功能
- 掌握 Ajax,第 4 部分: 利用 DOM 进行 Web 响应
- 区域个数 坐标离散化 BFS算法
- Ubuntu上用快捷键部分区域截图
- 【2012天津区域赛】部分题解 hdu4431—4441
- 掌握 Ajax,第 4 部分: 利用 DOM 进行 Web 响应
- 解决 iOS View Controller Push/Pop 时 右上角部分区域的黑影
- VRML---第二章第三部分(纹理坐标及纹理坐标变换节点)
- 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应
- google 分屏 横屏模式 按home键界面错乱故障分析(二) 分屏的启动过程
- Ajax学习摘录之第八部分 在请求和响应中使用 XML
- Opencv: 将一张图片的部分区域保存成另一张图片
- OSPF分解试验部分-LAB8:Total NSSA区域