最近找工作看到大部分的公司都有博客或開源項目的要求铅檩,我也尋思著自己寫點博客守呜,但是實在是不知道該寫些什么東西眠寿,太深奧的技術(shù)自己也寫不明白躬翁,所以決定從一些平時開發(fā)中應(yīng)用到的一些控件開始寫,開發(fā)中遇到的問題到時候也總結(jié)寫寫盯拱,一方面可以自己總結(jié)盒发,只有學(xué)會總結(jié)才能更好的進(jìn)步,以后遇到同樣的問題才能不犯錯狡逢,另一方面也可以給有需要的朋友提供些許的幫助宁舰。
今天要寫的是一個非常簡單但是又常用的控件——輪播圖。
此輪播圖采用的是UIScrollView和PageController以及NSTimer來實現(xiàn)奢浑,通過NSTimer來改變UIScrollView的偏移量蛮艰,然后通過scrollView的偏移量來計算當(dāng)前的page。在數(shù)據(jù)源最前面添加一個最后的圖片雀彼,在最后面添加第一個圖片壤蚜,當(dāng)scrollView偏移量到最后一張圖片時即寡,設(shè)置scrollView的偏移量為第二張圖片,最終達(dá)到循環(huán)輪播效果袜刷。
具體代碼實現(xiàn)如下:
ZYCycleView.h文件內(nèi)容
h文件定義了ZYCycleView的初始化,輪播圖所需的各種屬性以及點擊輪播圖的回調(diào),包括block回調(diào)和delegate回調(diào)聪富。
以下是實現(xiàn)文件:
初始化ZYCycleView:
初始化屬性默認(rèn)值,創(chuàng)建scrollView以及PageControl:
創(chuàng)建timer循環(huán)圖片,每隔scrollTimeInterval改變scroolView的偏移量:
懶加載創(chuàng)建scrollView以及pageControl:
圖片點擊事件,UIScrollViewDelegate:
以上是全部的代碼,代碼詳情:
https://github.com/Xillard/ZYCycleView.git