假设蓝色矩形在红色矩形的中心,绿色需要在顶部,黄色在左侧。
在带有对齐指南的 SwiftUI 中如何做到这一点?没有一个尺寸是已知的,但黄色和蓝色高度匹配,绿色和蓝色宽度匹配。
我从Twitter 上的https://swiftui-lab.com获得了帮助
使用我的辅助方法:
extension View {
func overlay<Overlay: View>(alignment: Alignment, @ViewBuilder builder: () -> Overlay) -> some View {
overlay(builder(), alignment: alignment)
}
}
可以这样做:
Color.red
.overlay(alignment: .bottom) {
HStack(alignment: .top, spacing: 0) {
Color.clear.frame(width: 0)
Color.yellow
.alignmentGuide(.top) { $0.height + 10 }
}
}
.overlay(alignment: .trailing) {
VStack(alignment: .leading, spacing: 0) {
Color.clear.frame(height: 0)
Color.blue
.alignmentGuide(.leading) { $0.width + 10 }
}
}
.padding(100) // padding given for the example