跟 GPT / Gemini / Claude 斗智斗勇好几个日日夜夜都没能摸清楚里面的门道,可能 AI 在一些小众的技术细节上还是力不从心,特别是 tvOS 上的焦点控制。只能来请教熟悉 tvOS / SwiftUI 的大佬们了。
用文字不太好描述,做了个图:

想请教:
- Apple TV 上的 Apple TV+ app 顶部 Hero (大图背景)和上层的按钮可能是用什么 SDK 实现的?( Tabview ? ScrollView ?普通的 ZStack ?)
- 它是怎么做到焦点在最左侧的“Renew Apple TV”按钮上时,既可以向左切换影片,又能仅在到达最左侧第一部影片时才呼出侧边栏(侧边栏应该是.tabViewStyle(.sidebarAdaptable))?
我尝试了:
- 用 ScrollView 或 Tabview 。但这两种方式似乎只适合单个焦点的场景,对于这种有多个按钮的情况无从下手,我甚至试了让实际焦点透明,在上层按钮上模拟焦点行为,但总是会遇到各种问题,特别是快速滑动的情况下;
- 用普通的 ZStack 和 index 索引驱动。通过 onMoveCommand 拦截左右按键,但发现系统 TabView 的优先级更高,总是会在向左切影片时呼出侧边栏;又尝试在最左侧添加了“幽灵焦点”,这样几乎完美,但在快速向左切影片时,侧边栏还是会一直闪现从而露馅。
折腾得心累,我甚至怀疑 Apple 是不是用了什么私有 SDK 或者什么 UIKit 的特性来实现。
还请大佬们不吝赐教。