首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SwiftUI中的旋转木马/侧边栏列表样式

SwiftUI中的旋转木马/侧边栏列表样式
EN

Stack Overflow用户
提问于 2019-06-12 15:27:12
回答 3查看 4.7K关注 0票数 3

有两种列表样式是不活动的,在SwiftUI中不会产生结果。尝试.carousel.sidebar样式来解决这个问题。

代码语言:javascript
运行
复制
struct ContentView : View {

    var body: some View {
        List {
            Text("Hello")
        }
        .listStyle(.carousel) // Or .sidebar
    }

}

这是因为测试版(bug),还是我漏掉了什么?列表没有出现在我的iPhone上。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-12 17:18:38

SidebarListStyle仅在macOS上可用,CarouselListStyle只适用于watchOS。

下面是在macOS上运行侧边栏样式列表的样子:

扩大:

塌陷:

下面是代码(虽然我不确定Range或任何其他一维序列的实例是这种样式的正确选择):

代码语言:javascript
运行
复制
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
    }
}
票数 3
EN

Stack Overflow用户

发布于 2019-08-23 02:43:40

正如其他人指出的那样,语法正在发生变化。

这样试一试:

代码语言:javascript
运行
复制
.listStyle(CarouselListStyle())
票数 3
EN

Stack Overflow用户

发布于 2019-06-12 15:49:21

你是对的。

看起来,.carousel.sidebar样式都不能在iOS上工作/无法实现。

下面是我的演示代码:

代码语言:javascript
运行
复制
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仍然处于测试阶段,因此许多组件被损坏或丢失。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56565699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档