我是swiftui的新手。我正在制作一個登錄螢屏,我必須在其中使用Apple 和 gmail按鈕登錄。我正在使用自定義視圖來設計按鈕。這是該自定義按鈕視圖的代碼:
struct CustomSocialButton: View {
var ImgName: String
var body: some View {
Button(action: {
print("button pressed")
}) {
Image(ImgName)
.renderingMode(.original)
}
}
}
struct CustomSocialButton_Previews: PreviewProvider {
static var previews: some View {
CustomSocialButton(ImgName: ImageName.appleSignin.rawValue)
}
}
我將影像名稱保存到我的常量檔案中。
問題是當我將它用于我的實際登錄視圖并設定它的寬度和高度時。它沒有占用那個高度和寬度。這是按鈕的代碼:
HStack(spacing: 10) {
CustomSocialButton(ImgName: ImageName.appleSignin.rawValue)
.frame(width: 48, height: 48)
CustomSocialButton(ImgName: ImageName.googleSignin.rawValue)
.frame(width: 48, height: 48)
}
這是我的登錄視圖的螢屏截圖:
有誰知道我做錯了什么?
uj5u.com熱心網友回復:
您需要使影像可調整大小,例如
Image(ImgName)
.renderingMode(.original)
.resizable() // << here !!
也可能要添加.aspectRatio(contentMode: .fit)
uj5u.com熱心網友回復:
您可以使用 Spacer() 或 Divider()。
Divider 會顯示一些水平/垂直線,我不認為這是你需要的,所以試試 Spacer()。
Spacer()有什么作用?Spacer 是一個靈活的空間,可以隨著您的視野而擴展。它會在布區域分中“減少”您的水平(但也垂直)HStack(VStack)。如果您想將文本居中,您可以使用
HStack{
Spacer()
Text("Hi there");
Spacer()
}
要解決您的問題,請嘗試以下操作:
HStack(spacing: 10) {
CustomSocialButton(ImgName: ImageName.appleSignin.rawValue)
.frame(width: 48, height: 48)
Spacer()
CustomSocialButton(ImgName: ImageName.googleSignin.rawValue)
.frame(width: 48, height: 48)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/462533.html
上一篇:按鈕轉向側身錨
