SwiftUI 和 tvOS(可聚焦) [英] SwiftUI and tvOS (focusable)

查看:40
本文介绍了SwiftUI 和 tvOS(可聚焦)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道,SwiftUI 目前处于测试阶段,但我想确保正确使用可聚焦.

I know, SwiftUI is currently in beta, but i want to be sure to use focusable correctly.

实际上,当我在列表中向下滚动时,当列表向下滚动时,焦点项目会跳过 3 或 4 行(向上滚动方向很好).

Actually, when i scroll down in the list, the focused item skips 3 or 4 rows when the list scroll down (up scroll direction is fine).

您可以尝试使用此代码,在 b4 版本中:(b5 相同)

You can try with this code, in b4 version: ( same for b5)

import SwiftUI

struct TestList: Identifiable {
    var id: Int
    var name: String
}

let testData = [Int](0..<50).map { TestList(id: $0, name: "Row \($0)")  }


struct SwiftUIView : View {
    var testList: [TestList]

    var body: some View {
        List {
            ForEach(testList) { txt in
                TestRow(row: txt)
            }
        }
    }
}

struct TestRow: View {
    var row: TestList

    @State private var backgroundColor = Color.clear

    var body: some View {
        Text(row.name)
        .focusable(true) { isFocused in
            self.backgroundColor = isFocused ? Color.green : Color.blue
            if isFocused {
                print(self.row.name)
            }
        }
        .background(self.backgroundColor)
    }
}

#if DEBUG
struct SwiftUIView_Previews : PreviewProvider {
    static var previews: some View {
        SwiftUIView(testList: testData)
    }
}
#endif

谢谢.

推荐答案

它终于用 Xcode 11 GM 为我工作了...

It finally working for me with Xcode 11 GM...

这篇关于SwiftUI 和 tvOS(可聚焦)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆