目前游戏已经适配iphoneX 为居中,在安全区内如下图
但是,当我点击editbox,准备输入聊天内容的时候,出现如下图的 情况,游戏画布整个往左移动了
请问如何解决这个问题呢? 急!急!急!
难以置信!EditBox 问题真的多
明天我再问一下团队。EditBox真的是非常难搞,每个系统版本、每个厂商的安卓定制版都不一样,就没有一个类似OpenGL的行业标准出来。就算我们这个版本适配好了,操作系统一更新版本又出问题。
有没什么方法能设置键盘的弹出方式,不移动游戏画布,直接覆盖在上面的,(发现,输入框比 弹出的键盘高的时候,没有画布移位的问题)
你可以打开一个HTML5页面 ,在那里做输入。 我以前是这样干的。
嘗試修改 CCEAGLView-ios 裡的 originalRect_
把 originalRect_.origin.x 跟 originalRect_.origin.y 都設成0看看
##EditBox的willShow跟willEnd方法中,只要调用了doAnimationWhenKeyboardMove方法,就会出现画布移动。可以注释掉,不调用该函数,就解决了。但是这样的话,有可能会出现软键盘挡住输入框的情况。
改进方案:修改cocos底层 文件夹目录 cocos2d-x-3.16/cocos/platform/ios/CCEAGLView-ios.mm 的doAnimationWhenKeyboardMoveWithDuration方法的实现,修改 self.frame的值为适配之后带安全区的值。
出现在安全区域是如何做到的
在rootViewController应该有调整过self.view.frame的,参考https://github.com/biganans/cocos2x-adaptation。
UIWindow* window = [[UIApplication sharedApplication] keyWindow]
用window来替代self.view
请问你是解决了还是没解决呢?
有解决吗
可参考乱世王者
帮顶 这个确实一直都有问题。目前凑合还能用 体验确实差
貌似这个问题目前还没有什么好的解决方案。我这两天正好改造一个老的 cocos2d-x 3.3 引擎的项目也碰到了这个问题,并且界面布局是用 cocosbuilder 做的,折腾了好久才搞定。说实话,网上的资料不多。
有两种解决方案:
最新的 3.17 引擎还没去看,老项目升级引擎也很麻烦,因为源码改动较多。唉。
我解决的方案:CCEAGLView viewWithFrame: CGRectMake(safeLeft,0,你的宽度,你的高度)