最近几天在研究游戏适配IphoneX机型的问题,现总结一下以防忘记,之前想着通过采用网上一篇介绍cocos2dx 适配X的方法实现全屏,
链接:https://mp.weixin.qq.com/s/2icxj1E8t2540Zr0j4aIZA,
https://github.com/biganans/cocos2x-adaptation
这样是解决了全屏的问题,但是因为齐刘海的问题,有些按钮都被遮挡住了,如果单独对这些遮挡的按钮进行位置操作的话,整个ui布局效果就会很差,而且针对每一个被遮挡的控件界面都要操作,工作量还是比较大的,我们游戏也已经开发了一些时日,所以在这个基础上进行了一些修改,采用两边留出一部分用图片填充,游戏UI都在中间部分展示的方式
首先,在 RootViewController.mm文件里添加方法“viewSafeAreaInsetsDidChange”,这个方法是干嘛的在xcode Quick help里都有介绍,这里就不说了,:
- (void)viewSafeAreaInsetsDidChange {
[superviewSafeAreaInsetsDidChange];
NSLog(@"viewSafeAreaInsetsDidChange %@",NSStringFromUIEdgeInsets(self.view.safeAreaInsets));
[selfupdateOrientation];
}
bool changeViewFrame = false;
- (void)updateOrientation {
if (@available(iOS11.0, *)) {
CGRect rect = [[UIScreenmainScreen]bounds];
CGSize size = rect.size;
CGFloat width = size.width;
CGFloat height = size.height;
CGFloat scale_screen = [UIScreenmainScreen].scale;
//通过分辨率判断是否是iPhoneX手机
if (width*scale_screen ==2436and height*scale_screen ==1125)