有两种无效的列表样式,而SwiftUI不会产生任何结果。尝试使用.carousel
和.sidebar
样式来找出答案。
struct ContentView : View {
var body: some View {
List {
Text("Hello")
}
.listStyle(.carousel) // Or .sidebar
}
}
这是由于beta(错误)引起的,还是我错过了某些事情?该列表没有出现在我的iPhone上。
答案 0 :(得分:3)
就像其他人指出的那样,语法正在改变。
尝试一下:
.listStyle(CarouselListStyle())
答案 1 :(得分:1)
你是对的。
.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仍处于测试阶段,因此很多组件损坏或丢失。
答案 2 :(得分:1)
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
}
}