Open3
anchorPreferenceで、子Viewの座標やサイズをいい感じに取得してUI実装
↑の記事中のリンク https://swiftui-lab.com/communicating-with-the-view-tree-part-2/ も合わせて読むと良い
子ViewでanchorPreferenceして、
.anchorPreference(key: AnchorKey.self, value: .bounds, transform: { self.selectedIndex == index ? $0 : nil})
親ViewでGeometryReaderつかって、子のCGRect取得する
GeometryReader { proxy in
if bounds != nil {
Rectangle()
.fill(Color.blue)
.frame(width: proxy[bounds!].width, height: 1)
.offset(x: proxy[bounds!].minX, y: 3)
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomLeading)
}
}
GeometryProxyにsubscript<T>(Anchor<T>) -> T
があるの知らなかった。TはCGRectかCGPointになるっぽい
なお、preferenceは子から親・先祖にデータ渡すやつ。environmentの逆