SwiftUI实战-轮播图

SwiftUI实战系列

本章内容

无限轮播图

轮播图.gif

相关源码:
ContentView.swift

import SwiftUI

struct ContentView: View {
    
    @State var imagesName = ["12345", "67891"]
    @State var images = ["12345", "67891"]
    @State var currentIndex: Int = 0
    
    var body: some View {
        VStack {
            
            ZStack(alignment: .bottom) {
                CustomLoopView.init(urls: images, currentIndex: $currentIndex)
                
                HStack(alignment: .center, spacing: 6) {
                  ForEach(0..<imagesName.count, id:\.self ) { index in
                    let isCurrentIndex = index == currentIndex
                    Color(isCurrentIndex ? .systemBlue : .white).cornerRadius(2).frame(width: isCurrentIndex ? 10 : 4, height: 4)
                  }
                }
                .frame(height: 20)
            }
            Spacer()
        }.onAppear {
            images = [imagesName.last!] + images + [imagesName.first!]
        }
    }
}

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

CustomLoopView.swift

还有 49% 的精彩内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥9.90 继续阅读

推荐阅读更多精彩内容