-
Creator 版本:2.3.4
-
目标平台:iOS
-
重现方式:
项目方向选择的是Landscape Left 和Landscape Right。
在iOS上运行前,让手机保持Landscape Left 状态,启动项目,看到LaunchSreen之后,立马翻成Landscape Right。
等待第一个scene出现,出现后。touch位置就发生了偏移,向右下角偏移。 -
手机型号 :iphone 6
-
出现概率:100%
-
额外线索:按照以下链接,修改过旋转放大的问题。
https://github.com/cocos-creator/engine/pull/6689
是按照这个改的,但解决我不了我说的这种问题。
这个是解决在看到scene后的翻转,但是。我的是在LaunchSreen界面就翻转哦。你可以按照我的方式试一下。特意做了demo。
这个PR合并到2.4了,我测试了下2.4,没有复现你描述的情况
你是在哪个界面翻转屏幕的?难道手机有问题?
这里可以发视频吗?我录了个视频。很极限的操作哦
可以复现了,操作有难度,我们排查下~
嗯嗯,等你们的解决方案哦~!
刚发现华为Mate30 pro上也有这个问题,重现方式和楼主说的一样
怎么样了?有啥结果呀?
今天终于有空了。
我就研究了一下,发现问题是

jsb.onResize首次被调用时,cc.view._devicePixelRatio = 1,但再次翻转屏幕后,就会=2。查看赋值的地方,
发现 jsb.onResize首次调用,是在CCView.js的中的ContainerStrategy的_setupContainer方法之前。
既然这样,我在CCView.js中增加了一个方法,
_mkDevicePixelRatio:function() {
this._devicePixelRatio = 1;
if(CC_JSB){
this._devicePixelRatio = window.devicePixelRatio;
}else if (this.isRetinaEnabled()) {
this._devicePixelRatio = Math.min(this._maxPixelRatio, window.devicePixelRatio || 1);
}
},
cc.view = new View();
cc.view._mkDevicePixelRatio();
在构造方法后,增加了一下他的调用。目前看没啥问题。
恩,好的。
