現象:啟用 enableRetinaDisplay(true) 且僅提供 xxxx-hd.png 無普通圖時,HD 設備加載卡死。
原因:fullPathFromRelativePath 無法正確解析路徑,直接返回原文件名。
結論:必須同時提供 HD 與 SD 兩套圖,即使 SD 圖為空佔位也要存在。
現象:使用 alignItemsHorizontally/Vertically 等自動佈局函數,更換大尺寸圖片後按鈕位置錯亂重疊。
分析:自動佈局假設圖片尺寸較小,大圖超出預期間距導致算法失效。
建議:手動控制佈局,雖繁瑣但可控、穩定。
現象:編譯成功但舊設備(iTouch 2/4.2.1)無反應,控制台輸出 lockdownd Could not receive USB message。
根因:iOS 5 前需 armv6 指令集,Xcode 4.2 默認僅構建 armv7。
修復:Build Settings → Architectures → 添加 armv6。
最佳實踐:專案創建即配置 armv6,防止遺漏。
修改 ios/RootViewController.mm 中的委託方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
// 僅允許豎屏
return orientation == UIInterfaceOrientationPortrait;
// 橫屏遊戲可用:
// return UIInterfaceOrientationIsLandscape(orientation);
}
此法無需修改引擎源碼,僅調整專案層代碼,推薦使用。