1

我对 tvOS 和 SwiftUI 有一些焦点引擎问题。

当我在 SwiftUI 中使用按钮时,焦点引擎可以完美地处理它(按钮会自动获得焦点,并在获得焦点时弹出有趣的动画)。当我使用 VStacks 和 HStacks 创建带有图像的网格时,.focusable()确实处理了焦点部分,但在屏幕上视觉上除了网格是可滚动的之外没有什么可看的。

我真的希望我在网格中的图像能够突出显示并弹出到前面,就像我可以在 TVML/TVJS 中轻松做到的那样(但谁不想成为原生的)。我想看看我是否可以全部原生化,但 Apple 在其演示和文档的 tvOS 部分上做的很少。

我曾尝试寻找可以解决此问题的示例项目,但我找不到任何东西。也许这里有人知道。提前谢谢了!

4

1 回答 1

2

是的,确实没有多少可以找到。这是我到目前为止所做的:

struct DefaultCell: View {
    @State var focused: Bool = false

    var record : Record
    var body: some View {

        VStack{
            Image("placeholder")
            Text(record.title)
                .foregroundColor(self.focused ? .red : .gray)

        }
        .focusable(true, onFocusChange:{ (changed) in
            self.focused = changed
        })
    }
}

我的记录如下所示:

struct Record: Decodable, Hashable {
    var id:Int;
    let title: String;
    let poster_path,overview: String?;
}
于 2019-10-23T08:22:40.257 回答