最理想的内容加载体验,是在用户还没察觉到有加载这回事之前就已经完成了。

如果你的应用或游戏需要加载资源、关卡或其他内容,应当设计好加载行为,确保它不会打断或破坏用户体验。
最佳实践
尽快显示内容。如果你让用户在什么都没显示的情况下干等加载完成,他们很可能会把这种“没有内容”理解为你的应用或游戏出了问题。更好的做法是:在内容加载的过程中,先展示一些占位文本、占位图形或占位动画,然后在真实内容可用时逐步替换这些占位元素
在内容加载的同时,让用户可以在你的应用或游戏中做点别的事情。在后台加载内容,可以让用户在前台继续进行其他操作。例如,一款游戏可以在后台加载下一关的内容,同时让玩家在前台查看下一关说明或浏览游戏内菜单。有关开发者指南,请参阅 Improving the player experience for games with large downloads。
如果加载不可避免地会花比较长的时间,可以在用户等待时为他们提供一些有趣的内容可看。例如,你可以展示玩法提示、操作小技巧,或者向用户介绍新的功能。尽可能准确评估剩余加载时间,以避免出现两种情况:要么占位内容刚出现没多久就消失,用户来不及看;要么加载时间过长,不得不重复播放这些占位内容。
通过在后台下载大体量资源,可以缩短安装时间和启动时间。可以考虑使用 Background Assets 框架来调度资源下载,比如游戏关卡包、3D 角色模型、纹理等,让这些下载在安装完成后、更新期间,或其他不打扰用户的时间自动进行。
展示进度
清晰地向用户传达:内容正在加载,以及大概还需要多久才能完成。理想情况下,内容应做到即时显示;但在加载超过一两秒的场景中,可以使用系统提供的 进度指示器(progress indicators) 来表明加载正在进行中。一般来说,当你大致知道加载时长或进度时,应使用可确定型进度指示器(determinate);当你无法预估时长时,则应使用不确定型进度指示器(indeterminate)。更多指导请参见进度指示符(Progress indicators)相关文档。
对于游戏,建议考虑设计一套自定义的加载界面。标准的系统进度指示器在大多数应用中都很好用,但在游戏中有时会显得不太合适、略微“出戏”。可以通过自定义动画和与游戏视觉风格相匹配的界面元素,来打造更有吸引力、更融入游戏世界观的加载体验。
平台注意事项
对于 iOS、iPadOS、macOS、tvOS 或 visionOS,没有额外的特别注意事项。
在 watchOS 上,应尽量避免显示加载指示器。用户期望在 Apple Watch 上获得快速的交互体验,所以应尽量做到内容即时显示。在确实需要一两秒加载时间的情况下,显示一个加载指示器要比给用户一片空白屏幕好得多。








