[SwiftUI] 製作客製化CardView

建立一個新的swiftUI檔案


import SwiftUI

struct CardView: View {
    //CardView客製化參數
    var image:String
    var category:String
    var heading:String
    var author:String
    
    var body: some View {
        VStack {
            Image(image)
                .resizable()//自動調整圖片大小
                .aspectRatio(contentMode: .fit)
            HStack {
                VStack (alignment: .leading){//讓文字框向前靠齊
                    Text(category)
                        .font(.headline)
                        .foregroundColor(.secondary)
                    Text(heading)
                        .font(.title)
                        .fontWeight(.black)
                        .foregroundColor(.primary)
                        .lineLimit(3)
                    Text(author.uppercased())
                        .font(.caption)
                        .foregroundColor(.secondary)
                }
                .layoutPriority(100)//調整佈局優先度
                Spacer()//用Spacer將HStack填滿達到將文字往左推的效果
            }.padding()
        }.cornerRadius(10)//讓HStack有圓角
        .overlay(RoundedRectangle(cornerRadius: 10)
                    .stroke(Color(.sRGB, red: 150/255, green: 150/255, blue: 150/255, opacity: 0.1), lineWidth: 1))//外面加上一個正方形框達到陰影效果
        .padding([.top,.horizontal])//用padding調整上方及左右間距
    }
}

struct CardView_Previews: PreviewProvider {
    static var previews: some View {
        CardView(image: "swiftui-button", category: "SwiftUI", heading: "Drawing a Border with Rounded Corners", author: "Simon Ng")
    }
}