全屏圖帶邊距留白

錄屏2024-10-29 10.12.33.gif

https://juejin.cn/post/7090002599675920391

import SwiftUI
import Foundation
struct imageModel: Identifiable {
    var id = UUID()
    var image: String
    var imageName: String
}
let imageModels = [
    imageModel(image: "turtlerock", imageName: "Image - 1"),
    imageModel(image: "turtlerock", imageName: "Image - 2"),
    imageModel(image: "turtlerock", imageName: "Image - 3"),
    imageModel(image: "turtlerock", imageName: "Image - 4"),
    imageModel(image: "turtlerock", imageName: "Image - 5")
]
struct Banners: View {
    var body: some View {
        GeometryReader { outerView in
            ScrollView(.horizontal, showsIndicators: false) {
                HStack(alignment: .center) {
                    ForEach(imageModels.indices, id: \.self) { index in
                        GeometryReader { innerView in
                            CardView(
                                image: imageModels[index].image,
                                imageName: imageModels[index].imageName
                            )
                            
                        }
                        
                    }
                    .padding(.horizontal, 20)
                    .frame(
                        width: outerView.size.width,
                        height: outerView.size.height
                    )
                }
            }
            .frame(
                width: outerView.size.width,
                height: outerView.size.height,
                alignment: .leading
            )
        }
    }
}
struct CardView: View {
    let image: String
    let imageName: String
    
    var body: some View {
        ZStack {
            GeometryReader { geometry in
                Image(image)
                    .resizable()
                    .scaledToFill()
                    .frame(width: geometry.size.width, height: geometry.size.height)
                    .cornerRadius(15)
                    .overlay(
                        Text(imageName)
                            .font(.system(.headline, design: .rounded))
                            .fontWeight(.heavy)
                            .padding(10)
                            .background(Color.white)
                            .padding([.bottom, .leading])
                            .opacity(1)
                            .frame(
                                minWidth: 0,
                                maxWidth: .infinity,
                                minHeight: 0,
                                maxHeight: .infinity,
                                alignment: .bottomLeading
                            )
                    )
            }
        }
    }
}
#Preview {
    Banners()
}

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

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

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