近期 Apple 發布了一系列新品,包含了 iPhone 13 系列手機。其中 iPhone 13 Pro 和 iPhone 13 Pro Max 的屏幕為 ProMotion 自適應刷新率技術的超視網膜 XDR 屏幕,可在 10 Hz 到 120 Hz 的自適應刷新率區間進行自動調節。在用戶使用時屏幕會靈活變動幀數,用來提升用戶體驗和延長電池續航時間。
值得一提的是,雖然屏幕支援最高 120Hz 刷新率,但有開發者發現,絕大部分的 App 動畫被限制在了 60Hz。這意味著用戶使用手機時會有不同的體驗,但滑動或者全屏切換時,為了流暢的過度,ProMotion 切換成 120Hz 刷新率,但是動畫卻被限制在了 60Hz。
Am I correct in seeing that UIView.animateWithDuration APIs aren’t clocked at 120Hz on iPhone 13? On UIScrollView, system ones, and Metal by the looks of it, rest is still 60Hz? pic.twitter.com/t3MeM9cj0E
— Christian Selig (@ChristianSelig) September 24, 2021
舉了例子,當你使用 Twitter App 時,其內容的消息滾動時為 120Hz,但是 Twitter App 過場動畫卻是 60Hz。
▲1/60 fps = 16.6ms, 1/120 fps = 8.3ms
對於 Apple 添加 60Hz 刷新率限制的做法,開發者猜測這是為了設備更好的續航表現。因為在擁有更大電池的 iPad Pro 上,沒有發現刷新率受到了限制,動畫仍舊可以 120Hz 運行。
有細心的開發者還發現,Apple 自家的應用動畫可以運行 120Hz,但第三方的卻沒有辦法,不排除是系統問題或者軟件未開放導致。