swiftui - SwiftUI:点击获取 LazyHGrid 中的单元格视图框架?
问题描述
我有以下网格设置:
struct TestView: View {
var topRowItems = [
GridItem(.flexible())
]
let testIds:[Int]
var body: some View {
GeometryReader { geo in
ScrollView(.horizontal) {
LazyHGrid(rows: topRowItems, alignment: .center, spacing: 0) {
ForEach(testIds, id: \.self) { testId in
Rectangle()
.stroke(Color(.blue), lineWidth: 0.5)
.padding(4)
.frame(width: geo.size.height, height: geo.size.height, alignment: .center)
.onTapGesture {
/// .... GET FRAME OF RECTANGLE ....
}
.overlay(
Text("TEST ID: \(testId)")
)
}
}
.background(Color(.brown))
}
}
}
}
我知道我可以将每个 Rectangle 包装在它们自己的中GeometryReader
,并使用它来获取全局框架。这真的是我应该为每个“细胞”做的吗?如果网格变大怎么办,我应该这样做还是有另一种方法可以让我不必在每个单元格周围使用几何阅读器?
解决方案
推荐阅读
- angular - ng g module my-module 只生成 module.ts 文件
- python - 为什么 sklearn cross_val_score 的分数这么低?
- php - 在谷歌云上更新 php 以安装 Debian 4.9
- swift - 如何在swift 5中将数据保留在回调函数之外
- stm32 - 如何在 USART1_IRQHandler 中使用 PWM 和 USART 更改 LED 的亮度?
- javascript - 显示html内容的双引号问题
- tensorflow - TensorFlow 超级简单的模型?10 个输入,1 个输出,因此 11 个可训练参数
- linux - 如何使用 linux ssh Tunel 命令连接到远程服务器
- python - 基数为 10 的 int() 的无效文字:'# NRECS: 1096\n'
- android - Admob 横幅广告在 Android 上显示白色、博览会