swift collectionView寫的新手引導

swift 使用collectionview寫的新手引導
直接上代碼:

import UIKit


let leadImageNameArr = ["start1","start2","start3","start4"]
class TTLeadNewUserViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource {

    var collectionView : UICollectionView!

    override func viewDidLoad() {
        super.viewDidLoad()
        setUpCollectionView()

    }

    fileprivate func setUpCollectionView()  {
        let layout = UICollectionViewFlowLayout()
        layout.itemSize = CGSize.init(width: MainWide, height: MainHeight)
        layout.minimumLineSpacing = 0
        layout.minimumInteritemSpacing = 0
        layout.scrollDirection = .horizontal
        collectionView = UICollectionView.init(frame: self.view.bounds, collectionViewLayout: layout)
        collectionView.isPagingEnabled = true
        collectionView.register(LeadImageCollectionCell.self, forCellWithReuseIdentifier: "LeadImageCollectionCell")
        collectionView.dataSource = self
        collectionView.delegate = self
        collectionView.showsHorizontalScrollIndicator = false
        self.view.addSubview(collectionView)
    }

    func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 1
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return leadImageNameArr.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "LeadImageCollectionCell", for: indexPath) as! LeadImageCollectionCell
        cell.setImage(leadImageNameArr[indexPath.row])

        if indexPath.row == leadImageNameArr.count - 1 {
            cell.setButtonOnImage()
        }
        return cell
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}

class LeadImageCollectionCell: UICollectionViewCell {

    fileprivate var imageView : UIImageView!
    fileprivate var button : UIButton?
    override init(frame: CGRect) {
        super.init(frame: frame)
        setUpImage(frame)
    }

    fileprivate func setUpImage(_ frame:CGRect) {
        imageView = UIImageView()
        self.contentView.addSubview(imageView)
    }
    override func layoutSubviews() {
        imageView.frame = CGRect.init(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
    }

    open func setImage(_ imageName : String){
        removeButton()
        imageView.image = UIImage.init(named: imageName)
    }
    func removeButton() {
        if button != nil {
            button?.removeFromSuperview()
        }
    }
    func setButtonOnImage()  {
        let btn = UIButton.init(type: .custom)
        btn.frame = CGRect.init(x: MainWide*0.25, y: MainHeight*0.8, width: MainWide*0.5, height: MainHeight*0.05)
        btn.setTitleColor(UIColor.collorWirhRGB(r: 227, g: 62, b: 42), for: .normal)
        btn.setTitle("立即體驗", for: .normal)
        btn.layer.cornerRadius = 10
        btn.layer.masksToBounds = true
        btn.layer.borderWidth = 1
        btn.layer.borderColor = UIColor.orange.cgColor
        btn.addTarget(self, action: #selector(goHomeVc), for: UIControlEvents.touchUpInside)
        button = btn
        self.contentView.addSubview(btn)
    }
    @objc func goHomeVc(){
    //跳轉到homeVc
        //TTPopTool.gohomeVc()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

輪播圖也可以使用collectionview寫的。。
權當自己做個筆記了。。
swift 版本 沒有什麼動畫,這個collectionview也可以用來做輪播圖

另外推薦一個自己寫的彈出自定義視圖的工具,支持pod 給個Star

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章