屏幕旋转实现方案,支持全平台

附一段解决方案,在原生代码里,旋转之前将屏幕方案设置成未知的,然后再设置自己想要的方向。如果用户锁定了屏幕方案,此方法依然有效。

+(void)setOrientation:(NSString*)dir{
    
    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationUnknown] forKey:@"orientation"];
    
    if([dir isEqualToString:@"V"]){
        oMask = UIInterfaceOrientationMaskPortrait;
        [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"];
    }
    else{
        oMask = UIInterfaceOrientationMaskLandscape;
        [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationLandscapeRight] forKey:@"orientation"];
    }
}
1赞

可以帮忙看看么。

该问题其实就是iOS原生横竖屏切换以后,cocos的视图没有做相应的处理。如图:

mark

请问 根据手机 旋转 来旋转屏幕 怎么实现

mark一下,说不定以后用得到

mark一下

mark一下

:grin:

我的引擎版本是1.10.1 IDE上能跳转到这个函数 但是运行的时候报错:window.dispatchEvent is not a function 求大佬解惑

可以查阅下api文档,可能确实没有这个接口,我的测试用例是2.0以上的版本

2.4.x web端重复旋转多次明显感觉到 frameSize 的变化,和原本的 frameSize 不一致,应该如下

let frame_size = cc.view.getFrameSize();
let temp1_n = cc.game.frame.clientLeft + (cc.game.frame.clientRight || cc.game.frame.clientLeft);
let temp2_n = cc.game.frame.clientTop + (cc.game.frame.clientBottom || cc.game.frame.clientTop);
cc.view.setFrameSize(frame_size.height + temp2_n, frame_size.width + temp1_n);
1赞

mark~~~

你好,请问一下,3.7.3在ios 17.1.3什么safari浏览器 旋转异常 需要怎么弄 什么代码都不写 旋转一下 在旋转回来 界面就异常了 :sob:

关注这个贴的不是做博彩就是做棋牌,一抓一个准 :laughing:

这话说的太绝对了,我们是做海外社交app,里面很多社交小游戏有横屏有竖屏,你太狭隘了,自己做博彩的吧?所以认知里只有博彩用这个