以下代码是创建自定义按钮的代码:
然而,整个按钮视图包含GeometryReader引入的额外空间,因此当我将此视图放置到根视图时,该空间无法消除。
import SwiftUI
let skyBlue = Color(red: 75/255, green: 170/255, blue: 193/255)
struct RegisterButtonView: View {
var body: some View {
GeometryReader { geo in
HStack {
Spacer()
Text("Register")
.foregroundColor(Color(.white))
.font(.system(size: geo.size.width / 20))
.bold()
Spacer()
}
.frame(width: geo.size.width * 4/9, height: geo.size.height / 7)
.background(skyBlue)
.cornerRadius(60)
}
}
}
struct RegisterButtonView_Previews: PreviewProvider {
static var previews: some View {
RegisterButtonView()
}
}
然而,整个按钮视图包含GeometryReader引入的额外空间,因此当我将此视图放置到根视图时,该空间无法消除。
GeometryReader
使用了所有可用的空间。 这是一项功能。 - AsperiRegisterButtonView
的大小基于Text
的大小,而Text
的大小基于其字体大小,而字体大小又基于GeometryReader
的大小。GeometryReader
获取其父视图给出的所有大小。在这种情况下,父视图是根视图。那么,如果不是基于GeometryReader
的大小,告诉我们你希望RegisterButtonView
的大小基于什么? - rob mayoffHStack
。 - Lance Chan