[英]Padding, offset, or position in SwiftUI
我正在尝试 position 一个圆圈,使其中心位于这样的矩形顶部。 圆的直径不必与矩形的宽度相同。
我想了解的是实现这一目标的最佳和最实用的方法是什么? 在这种情况下,我应该使用填充、偏移还是 position,它是否适用于不同的设备/屏幕尺寸? 似乎它们中的任何一个都可以使用,但哪个更理想?
这是我使用padding
的结果。 我可以增加底部填充以达到我想要的效果,但不确定这是否是最好的方法。
Rectangle()
.fill(Color.gray)
.frame(width: 85, height: 175)
.overlay(
Circle()
.fill(Color.black)
.frame(width: 120)
.padding(.bottom, 50)
)
这是可能的方法 - 只需使用 alignment 而无需硬编码偏移/位置。
使用 Xcode 12.4 / iOS 14.4 准备的演示
var body: some View {
Rectangle()
.fill(Color.gray)
.frame(width: 85, height: 175)
.overlay(
Circle()
.stroke(Color.black,
style: StrokeStyle(
lineWidth: 2,
lineCap: .round,
lineJoin: .miter,
miterLimit: 0,
dash: [5, 10],
dashPhase: 0
))
.frame(width: 85, height: 85)
.alignmentGuide(.top) { $0[VerticalAlignment.center] } // << this !!
, alignment: .top) // and this !!
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.