Carousel/sidebar SwiftUI 中的列表样式
Carousel/sidebar list styles in SwiftUI
有两种列表样式处于非活动状态并且不会在 SwiftUI 中产生任何结果。尝试使用 .carousel
和 .sidebar
样式来解决问题。
struct ContentView : View {
var body: some View {
List {
Text("Hello")
}
.listStyle(.carousel) // Or .sidebar
}
}
这是由于测试版(错误)造成的,还是我错过了什么?该列表没有出现在我的 iPhone.
上
你是对的。
看起来 .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 is still in beta, hence a lot of components are broken or missing.
SidebarListStyle
仅适用于 macOS,因为 CarouselListStyle
仅适用于 watchOS。
这是 sidebar-style 列表在 macOS 上 运行 时的样子:
展开:
已折叠:
这是代码(尽管我不确定 Range 的实例或任何其他 one-dimensional 序列的实例是否适合此样式):
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
}
}
正如其他人指出的那样,语法正在发生变化。
这样试试:
.listStyle(CarouselListStyle())
有两种列表样式处于非活动状态并且不会在 SwiftUI 中产生任何结果。尝试使用 .carousel
和 .sidebar
样式来解决问题。
struct ContentView : View {
var body: some View {
List {
Text("Hello")
}
.listStyle(.carousel) // Or .sidebar
}
}
这是由于测试版(错误)造成的,还是我错过了什么?该列表没有出现在我的 iPhone.
上你是对的。
看起来 .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 is still in beta, hence a lot of components are broken or missing.
SidebarListStyle
仅适用于 macOS,因为 CarouselListStyle
仅适用于 watchOS。
这是 sidebar-style 列表在 macOS 上 运行 时的样子:
展开:
已折叠:
这是代码(尽管我不确定 Range 的实例或任何其他 one-dimensional 序列的实例是否适合此样式):
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
}
}
正如其他人指出的那样,语法正在发生变化。
这样试试:
.listStyle(CarouselListStyle())