相关疑难解决方法(0)

下拉以刷新SwiftUI中的数据

我已经使用列出了简单的数据列表List。我想添加下拉菜单以刷新功能,但是我不确定哪种方法是最好的。

下拉刷新视图才可以看到,当用户尝试从同一像我们的第一个指数下拉在做UITableViewUIRefreshControlUIKit

这是在中列出数据的简单代码SwiftUI

struct CategoryHome: View {
    var categories: [String: [Landmark]] {
        .init(
            grouping: landmarkData,
            by: { $0.category.rawValue }
        )
    }

    var body: some View {
        NavigationView {
            List {
                ForEach(categories.keys.sorted().identified(by: \.self)) { key in
                    Text(key)
                }
            }
            .navigationBarTitle(Text("Featured"))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

list uirefreshcontrol swift swiftui

9
推荐指数
6
解决办法
3331
查看次数

可定制的 SwiftUI 刷新微调器

我目前有一个简单的 SwiftUI ScrollView,其中包含单个元素。我添加了该.refreshable(action: )属性以允许(下拉)刷新视图。但是,这只会在拉动刷新时显示默认的灰色微调器。有没有办法可以改变微调器的颜色/样式?

mobile ios swift swiftui ios15

8
推荐指数
1
解决办法
4474
查看次数

SwiftUI:向 LazyVStack 添加可刷新功能?

当我使用列表视图时,我可以轻松添加修饰符refreshable来触发刷新逻辑。我的问题是如何在使用 LazyVStack 时实现相同的目标。

我有以下代码:

struct TestListView: View {
    
    var body: some View {
        
        Text("the list view")
        
        // WORKS:
//        VStack {
//            List {
//                ForEach(0..<10) { n in
//                    Text("N = \(n)")
//                }
//            }
//            .refreshable {
//
//            }
//        }
        
        
        // DOES NOT SHOW REFRESH CONTROL:
        ScrollView {
            
            LazyVStack {
                ForEach(0..<10) { n in
                    Text("N = \(n)")
                }
            }

        }
        .refreshable {
            
        }
        
    }
    
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何获得刷新行为LazyVStack

ios swiftui lazyvstack

7
推荐指数
3
解决办法
9021
查看次数

标签 统计

swiftui ×3

ios ×2

swift ×2

ios15 ×1

lazyvstack ×1

list ×1

mobile ×1

uirefreshcontrol ×1