SWFIT 3におけるbannerカスタム

1430 ワード

appの中でスクロールする広告ビューは最もよく使われる小さなモジュールの一つで、今いくつかの自分で作ったbannerの重要な部分を書いて、みんなと分かち合って、もちろんこれはswift 3以上で、OCの後でも分かち合いますが、構想は基本的に1つです.まず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)

    }