我正在使用 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)
这inExpandingRectangle
是我在另一个 stackoverflow 问题中发现的。它将文本在 HStack 的每一侧居中。
extension View {
func inExpandingRectangle() -> some View {
ZStack {
Rectangle().fill(Color.clear)
self
}
}
}
它看起来像这样。垃圾。
如果我把它.fixedSize()
放在分隔器上,它会这样做。并不可怕,但分隔线看起来很愚蠢,并且不会扩展到按钮的大小。