首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在SwiftUI中从列表中获取屏幕行?

在SwiftUI中,您可以使用 GeometryReaderScrollView 来获取屏幕上的行数。以下是一种实现方法:

  1. 创建一个 List,其中包含您要显示的数据项。
代码语言:txt
复制
struct ContentView: View {
    let items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    var body: some View {
        List(items, id: \.self) { item in
            Text("Item \(item)")
        }
    }
}
  1. List 上方添加一个 GeometryReader,用于获取屏幕的大小和位置。
代码语言:txt
复制
struct ContentView: View {
    let items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    var body: some View {
        GeometryReader { geometry in
            ScrollView {
                // List code here
                List(items, id: \.self) { item in
                    Text("Item \(item)")
                }
            }
        }
    }
}
  1. List 的闭包中使用 onAppear 修饰符来检测每一行的出现,并获取它们的索引。
代码语言:txt
复制
struct ContentView: View {
    let items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    @State private var visibleRows: [Int] = []
    
    var body: some View {
        GeometryReader { geometry in
            ScrollView {
                List(items, id: \.self) { item in
                    Text("Item \(item)")
                        .onAppear {
                            if let index = items.firstIndex(of: item) {
                                visibleRows.append(index)
                            }
                        }
                }
            }
        }
    }
}

现在,visibleRows 数组将包含屏幕上可见行的索引。

请注意,以上示例仅用于演示目的。实际应用中,您可能需要根据特定需求进行调整和扩展。有关更多详细信息,请参阅相关文档和教程。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云产品:https://cloud.tencent.com/product

请注意,由于要求不能提及特定品牌商,因此无法提供与腾讯云相关的具体产品和链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券