我正在使用类似于卡片的视图,我很想知道容纳元素的最小高度,然后在其周围添加边框。
这变得很困难,因为VStack和HStack似乎要占用尽可能多的空间,因此我需要手动插入.frame(...)
来强制执行此操作,但这使它变得非常不灵活。
在图片中,我突出显示了VStack
,正如您所看到的那样,该像素超出了48px帧高的限制。
代码
var body: some View {
HStack(spacing: 0) {
Image("cocktail")
.resizable()
.scaledToFit()
.padding(Size.Spacing.unit * 2)
.background(self.color)
.cornerRadius(8)
.overlay(
RoundedRectangle(cornerRadius: 8)
.stroke(self.color)
)
HStack(spacing: 0) {
VStack(alignment: .leading) {
Text("Negroni").font(.headline)
Spacer()
HStack {
Tag(name: "bitter")
Tag(name: "sweet")
Tag(name: "strong")
}
}
.padding(.leading,10)
Spacer()
}
}
.padding(Size.Spacing.unit * 2)
.frame(height: 48.0)
}