在SwiftUI中,您可以使用 GeometryReader
和 ScrollView
来获取屏幕上的行数。以下是一种实现方法:
List
,其中包含您要显示的数据项。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)")
}
}
}
List
上方添加一个 GeometryReader
,用于获取屏幕的大小和位置。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)")
}
}
}
}
}
List
的闭包中使用 onAppear
修饰符来检测每一行的出现,并获取它们的索引。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
数组将包含屏幕上可见行的索引。
请注意,以上示例仅用于演示目的。实际应用中,您可能需要根据特定需求进行调整和扩展。有关更多详细信息,请参阅相关文档和教程。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,由于要求不能提及特定品牌商,因此无法提供与腾讯云相关的具体产品和链接。
领取专属 10元无门槛券
手把手带您无忧上云