有两种列表样式是不活动的,在SwiftUI中不会产生结果。尝试.carousel
和.sidebar
样式来解决这个问题。
struct ContentView : View {
var body: some View {
List {
Text("Hello")
}
.listStyle(.carousel) // Or .sidebar
}
}
这是因为测试版(bug),还是我漏掉了什么?列表没有出现在我的iPhone上。
发布于 2019-06-12 17:18:38
SidebarListStyle
仅在macOS上可用,CarouselListStyle
只适用于watchOS。
下面是在macOS上运行侧边栏样式列表的样子:
扩大:
塌陷:
下面是代码(虽然我不确定Range或任何其他一维序列的实例是这种样式的正确选择):
struct ContentView : View {
var body: some View {
List (0..<10) { number in
self.view(forNumber: number)
}
.listStyle(.sidebar)
}
func view(forNumber number: Int) -> some View {
print("number == \(number)")
let ret = Text("#\(number)")
.foregroundColor(.blue)
return ret
}
}
发布于 2019-08-23 02:43:40
正如其他人指出的那样,语法正在发生变化。
这样试一试:
.listStyle(CarouselListStyle())
发布于 2019-06-12 15:49:21
你是对的。
看起来,.carousel
和.sidebar
样式都不能在iOS上工作/无法实现。
下面是我的演示代码:
struct ContentView : View {
@State var alternateStyle = false
var body: some View {
var list =
AnyView(List(0...100) { item in
Text("\(item)").tapAction { self.alternateStyle.toggle() }
}
.navigationBarTitle(Text("A List")))
if alternateStyle {
list = AnyView(list.listStyle(.carousel))
} else {
list = AnyView(list.listStyle(.default))
}
return list
}
}
如果您点击一个Text
,从而交换样式,您将得到一个空白列表。
SwiftUI仍然处于测试阶段,因此许多组件被损坏或丢失。
https://stackoverflow.com/questions/56565699
复制相似问题