如何使 SwiftUI 列表在 tvOS 中可滚动
How to make a SwiftUI list scrollable in tvOS
我有一个包含内容的 List
,当我构建到 Apple TV 时,我无法滚动到 List
的底部。
我尝试将焦点放在 List
行上,但我似乎无法让列表滚动。我还用 ScrollView
替换了 List
无济于事。
List(self.someData) { data in
SomeListRow(data: data)
}
.shadow(radius: 5)
.focusable(true)
List(self.someData) { data in
SomeListRow(data: data)
.focusable(true)
}
.shadow(radius: 5)
所以我在 SomeListRow
中添加了 focusable,但没有用,但是删除 List
上的 .shadow
使它起作用。一定是修改器的顺序(还在研究中)。
tvOS 上的 SwiftUI 有一个错误,如果您在其中的组件 none 上设置阴影,它会接收用户输入事件,例如焦点。不过有一个简单的解决方法,只需在背景图层上设置阴影即可。
.background(
Color.white
.shadow(radius: 5)
)
我有一个包含内容的 List
,当我构建到 Apple TV 时,我无法滚动到 List
的底部。
我尝试将焦点放在 List
行上,但我似乎无法让列表滚动。我还用 ScrollView
替换了 List
无济于事。
List(self.someData) { data in
SomeListRow(data: data)
}
.shadow(radius: 5)
.focusable(true)
List(self.someData) { data in
SomeListRow(data: data)
.focusable(true)
}
.shadow(radius: 5)
所以我在 SomeListRow
中添加了 focusable,但没有用,但是删除 List
上的 .shadow
使它起作用。一定是修改器的顺序(还在研究中)。
tvOS 上的 SwiftUI 有一个错误,如果您在其中的组件 none 上设置阴影,它会接收用户输入事件,例如焦点。不过有一个简单的解决方法,只需在背景图层上设置阴影即可。
.background(
Color.white
.shadow(radius: 5)
)