SWFIT3中banner定制

在app中滚动的广告视图是最常用的小模块之一,现在把一些自己制作的banner的重要部分写上来,与大家分享,当然这只是swift3以上的,OC的稍后也会分享,但是思路基本是一至的
首先制作banner少不了Timer,所以这里我给timer小小的扩展,方便与启动与暂停以及延时启动,这3个方法可以写到Timer的extension中去

    func pauseTimer() {
        if self.isValid {
            self.fireDate = Date.distantFuture
        }
    }
    
    func resumeTimer() {
        if self.isValid {
            self.fireDate = Date()
        }
    }
    
    func resumeTimerAfterInterval(_ interval: TimeInterval ) {
        if self.isValid {
            self.fireDate = Date(timeIntervalSinceNow: interval)
        }
    }

然后是需要用到的关键属性

    var scrollView: UIScrollView?
    var currentPageIndex: Int?
    var animationTimer: Timer?
    var pageControl : (这里可以是你自己定制的pageControl类型)?

    //block 两个方法主要用于数据输出和输出
    var contentViewAtIndex : ((_ pageIndex: Int)->UIImageView)?
    var tapActionBlock: ((_ pageIndex: Int)-> Void)?
    //private
    private var contentViews : [UIImageView] = []
    var animationInterval : TimeInterval?
    private var totalPages :  Int?

接着需要在deinit中手动释放掉scrollView的delegate,至于原因,建议自己去踩

deinit {
        scrollView?.delegate = nil
    }

然后提供一个初始化的方法,需要将间隔时间,scrollView以及pageControl在初始化中实现,

    init(frame: CGRect ,_ duration: TimeInterval) {
        super.init(frame: frame)

    }

你可能感兴趣的:(SWFIT3中banner定制)