专注于SwiftUI(tvOS)列表中的特定项目

时间:2020-10-14 23:06:40

标签: swiftui tvos

我很难弄清楚如何专注于SwiftUI 2.0和tvOS 14中列表中的特定单元格/行。当我导航至时,我需要能够集中并选择特定记录。一个看法。但是,当焦点切换到列表时,某些随机行会被聚焦。我试过ScrollView和List来创建一个带有Buttons的项目列表,并带有适当的preferredsDefaultFocus。没事。这是一些示例代码:

struct ChannelListView: View {
    @Namespace private var namespace
    @ObservedObject var viewModel : LiveViewModel
    @State var selection = Set<ChannelItem>()
    var body: some View {
        List(viewModel.channels, selection: $selection){ item in
            ScrollViewReader { proxy in
                        Button(action: {
                        }){
                            ChannelItemView(item: item, selectedItem: $viewModel.selectedChannel, onSelected: { id in
                            })
                            .padding(.vertical, 2)
                        }
                        .buttonStyle(ChannelButtonStyle())
                        .prefersDefaultFocus(item == viewModel.selectedChannel, in: namespace)
            }
        }
        .focusScope(namespace)
    }
}

0 个答案:

没有答案