windows环境模拟iPhoneX适配

Posted 振长策而御宇内

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows环境模拟iPhoneX适配相关的知识,希望对你有一定的参考价值。

在resolution.ini增加isiPhoneX配置

[resolution]
width=1138
height=640
frameFactor = 1
isiPhoneX = 1

在AppDelegate中读取配置并设置安全区域

    int width = 960;
    int height = 640;
	float frameFactor = 1.f;
	bool isiPhoneX = false;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
    wchar_t lpPath[MAX_PATH];
    wchar_t widthStr[6] =  0 ;
    wchar_t heightStr[6] =  0 ;
	wchar_t frameFactorStr[6] =  0 ;
	wchar_t isiphoneXStr[6] =  0 ;

    wcscpy(lpPath, L"./resolution.ini");

    GetPrivateProfileString(L"resolution", L"width", L"", widthStr, 6, lpPath);
    GetPrivateProfileString(L"resolution", L"height", L"", heightStr, 6, lpPath);
	GetPrivateProfileString(L"resolution", L"frameFactor", L"", frameFactorStr, 6, lpPath);
	GetPrivateProfileString(L"resolution", L"isiPhoneX", L"", isiphoneXStr, 6, lpPath);

    width = _wtoi(widthStr);
    height = _wtoi(heightStr);
	frameFactor = _wtof(frameFactorStr);
	isiPhoneX = bool(_wtoi(isiphoneXStr));

	if (isiPhoneX) 
		width = 2436.0;
		height = 1125.0;
		frameFactor = 0.56888889;
		PlatformSetting::sharedInstance()->setViewSafeAreaInsets(0, 132, 63, 132);
	

    CCLOG("width = %d, height = %d, frameFactor = %f", width, height, frameFactor);
#endif

    ///end 
    Rect rect(0, 0, width, height);
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();

#if (CC_TARGET_PLATFORM == CC_PLATFORM_android)
        glview = GLViewImpl::createWithRect("ONE PIECE 2", rect, 1.0);
#else
        glview = GLViewImpl::createWithRect("ONE PIECE 2", rect, frameFactor, true);
#endif
        director->setOpenGLView(glview);
    

    Size frameSize = glview->getFrameSize();
    Size designSize(1136, 640);

    if  (frameSize.width / frameSize.height < 1136.f / 640) 
        glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::FIXED_WIDTH);
     else 
        glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::FIXED_HEIGHT);
    

以上是关于windows环境模拟iPhoneX适配的主要内容,如果未能解决你的问题,请参考以下文章

iPhoneX 适配总结

vue适配iphoneX底部安全区域

猫猫分享 iOS 适配iPhoneXS Max,iPhoneXS,iPhoneXR

猫猫分享 iOS 适配iPhoneXS Max,iPhoneXS,iPhoneXR

iphonex 适配

适配IphoneX