我正在使用SwiftUI创建类似于警报弹出窗口的东西,我使用UIHostingController从UIKit代码中呈现。视图如下:
VStack(spacing: 0) {
// Some text ...
HStack(spacing:0) {
Button(action: self.onCancel) { Text("Cancel") }
.padding().inExpandingRectangle().fixedSize(horizontal: false, vertical: true)
// This divider is the problem
Divider() // .fixedSize()
Button(action: self.onDelete) { Text("Delete") }
.padding().inExpandingRectangle().fixedSize(horizontal: false, vertical: true)
}
}.frame(minHeight: 0)
< p > inExpandingRectangle
是我在另一个stackoverflow问题中发现的。它可以将文本居中于HStack的每个侧面。
extension View {
func inExpandingRectangle() -> some View {
ZStack {
Rectangle().fill(Color.clear)
self
}
}
}
看起来是这样的。{{垃圾}}。
如果我在分隔符上使用.fixedSize()
,它会这样做。不是很糟糕,但分隔符看起来很愚蠢,而且不会扩展到按钮的大小。
var flexibility: Double
属性。 - Rob N