SwiftUI基礎(chǔ)之Button用法詳解

WechatIMG430.png
struct ContentView: View {
    var body: some View {
        VStack (alignment: .center, spacing: 15) {
            //文字按鈕
            buttonView(title: "微信登錄", bgColor: Color(red: 88/255, green: 224/255, blue: 133/255))
            buttonView(title: "Apple登錄", bgColor: Color(red: 51/255, green: 51/255, blue: 51/255))
            
            //圖片按鈕
            HStack(spacing: 40) {
                iconBtnView(image: "icon_common_wechat")
                iconBtnView(image: "icon_common_discover")
                iconBtnView(image: "icon_common_copyLink")
            }

            //圖文按鈕
            Button(action:  {
                print("tututu")
            }) {
                HStack {
                    Image("icon_tabbar_moments_selected")
                        .font(.title)
                    Text("消息")
                        .fontWeight(.semibold)
                        .font(.title)
                }
                .padding()
                .frame(minWidth: 0, maxWidth: .infinity)
                .foregroundColor(.white)
                .background(Color(red: 51/255, green: 51/255, blue: 51/255))
                .cornerRadius(40)
                .padding(.horizontal, 20)
            }
            
            //漸變背景和陰影按鈕
            Button {
                print("漸變")
            } label: {
                Text("漸變")
                    .font(.title)
                    .frame(minWidth: 0, maxWidth: .infinity)
                    .padding()
                    .foregroundColor(.white)
                    .background(LinearGradient(gradient: Gradient(colors: [Color.orange, Color.blue]), startPoint: .leading, endPoint: .trailing))
                    .cornerRadius(40)
                    .padding(.horizontal, 20)
            }
            
            //圓角按鈕且添加外圓角邊框
            Button {
                print("邊框")
            } label: {
                Text("邊框")
                    .padding()
                    .foregroundColor(.white)
                    .frame(minWidth: 0, maxWidth: .infinity)
                    .background(LinearGradient(gradient: Gradient(colors: [Color.orange, Color.yellow]), startPoint: .leading, endPoint: .trailing))
                    .cornerRadius(40)
                    .overlay(RoundedRectangle(cornerRadius: 40).stroke(Color.red, lineWidth: 5))
                    .padding(.horizontal, 20)
            }



        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

//按鈕
struct buttonView: View {
    //定義變量
    var title: String
    var bgColor: Color
    
    var body: some View {
        Button(action: {
            print("成功")
        }) {
            //按鈕樣式
            Text(title)
                .font(.system(size: 14))
                .frame(minWidth: 0, maxWidth: .infinity)
                .padding()
                .foregroundColor(.white)
                .background(bgColor)
                .cornerRadius(5)
                .padding(.horizontal, 20)
        }
    }
}

struct iconBtnView: View {
    //定義變量
    var image: String
    
    var body: some View {
        Button {
            print("分享")
        } label: {
            Image(image)
                .resizable()
                .frame(minWidth: 0, maxWidth: 32, minHeight: 0, maxHeight: 32)
                .padding()
                .background(Color(red: 246/255, green: 246/255, blue: 246/255))
                .clipShape(Circle())
        }
    }
}

如果本文對你有幫助,歡迎點贊、評論、關(guān)注…

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容