tvos - SwiftUI 和 tvOS(可聚焦)
问题描述
我知道,SwiftUI 目前处于测试阶段,但我想确保正确使用可聚焦。
实际上,当我在列表中向下滚动时,当列表向下滚动时,焦点项目会跳过 3 或 4 行(向上滚动方向很好)。
您可以在 b4 版本中尝试使用此代码:(编辑: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 上为我工作了......
推荐阅读
- android - 错误:尝试将 React Native 桥接到 Java 时,无法在未调用 Looper.prepare() 的线程内创建处理程序
- javascript - 如何在我的 NuxtJS 服务文件夹中访问它
- linux - 通过 VPS 访问 PostgreSQL
- javascript - JavaScript 中的闭包与内联函数
- c# - WPF - 为什么窗口突然失去焦点?
- c - 如何在 SAM4e 控制器中调试 CAN 总线?
- excel - 在循环范围内将 PDF 导出转换为 xlsm
- azure - SSO 到 Office 365 没有联合
- java - 如何使用 Sendgrid API 将本地文件作为邮件附件发送
- uproot - 如何使用 uproot 将带有 TVector3 分支的 TTree 加载到 Pandas DataFrame 中