问题描述
假设蓝色矩形位于红色矩形的中心,绿色需要在顶部,黄色在左侧。
如何在带有对齐指南的 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