Swift3.0基于CollectionView的輪播廣告控件、請接好

前言

公司新項目采用Swift3.0開發(fā),以前自己用的是OC 封裝的,現(xiàn)在用不了,從github上拉下來的好像不行,都是以前老版本的,還要自己做版本提升,索性自己封裝一個輪播,很多的輪播實現(xiàn)都是基于ScrollView水平添加多個ImageView實現(xiàn),個人覺的不是很好,因為如果要播放的輪播圖太多的話,這種方法會導(dǎo)致一次性創(chuàng)建多個ImageView,占用內(nèi)存,所以推薦CollectionView。效果圖如下:

TextKitDemo1.gif

使用說明

一切都在代碼中,創(chuàng)建控件

    lazy var tableView = UITableView()
    lazy var modelMArr = [YWCycleModel]()
    var cycleView : YWCycleView?
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.frame = view.bounds
        tableView.delegate = self
        tableView.dataSource = self
        view.addSubview(tableView)
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
        
        cycleView = YWCycleView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: 250))
        guard let cycleView = cycleView else {
            return
        }
        cycleView.delegate = self
        tableView.tableHeaderView = cycleView
        requestData()
    }
    

模擬請求數(shù)據(jù):

    func requestData() {
        let tempArr = [["title":"中國奧運軍團三金回顧","imageUrl":"http://pic33.nipic.com/20130916/3420027_192919547000_2.jpg"],
                       ["title":"《封神傳奇》進世界電影特效榜單?山寨的!","imageUrl":"http://imgstore.cdn.sogou.com/app/a/100540002/503008.png"],
                       ["title":"奧運男子4x100自由泳接力 菲爾普斯","imageUrl":"http://i1.hexunimg.cn/2014-08-15/167580248.jpg"],
                       ["title":"頂住丟金壓力 孫楊晉級200自決賽","imageUrl":"http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg"]];
        for dic in tempArr {
            let model = YWCycleModel()
            model.imageStr = dic["imageUrl"]
            model.title = dic["title"]
            modelMArr.append(model)
        }
        guard let cycleView = cycleView else {
            return
        }
        cycleView.dataArr = modelMArr
    }

點擊事件代理回調(diào):

extension ViewController: YWCycleViewDelegate {
    func cycleViewDidSelected(cycleView: YWCycleView, selectedIndex: NSInteger) {
        print("打印了\(selectedIndex)")
    }
} 

這樣一個輪播模塊就完成了

結(jié)語

只是展示如何使用的代碼,有興趣的同學(xué)歡迎去我的github下載相對應(yīng)的代碼Demo,如果覺得還行,可以放在以后項目中使用。如果代碼哪里有問題,歡迎指教~~~~
ps:因為時間關(guān)系,很多屬性來不及封裝,我會在有時間的時候,多封裝幾種樣式的,最后奉上Demo地址:https://github.com/iosyaowei/YWCycleViewDemo

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,045評論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,329評論 4 61
  • 有時候孤獨是好事,一個人就自己多長本事,多看世界,多走些路,把時間花在正事上,變成自己打心底喜歡的那種人。 把體重...
    空歡喜大柯基閱讀 424評論 0 0
  • 好像最近幾次更新,新卡除了在強度上有所加強,又增加了娛樂性和隨機性。這些改動一直被職業(yè)選手所詬病。這些“高手”們往...
    蘿卜歸來閱讀 352評論 1 0
  • 課程 開端 行動 【課程】 【第二課】 為什么要教授財務(wù)知識 大多數(shù)人過多地關(guān)注錢,而不是關(guān)注他們最大的財富——所...
    大霞大霞閱讀 795評論 0 51

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