效果圖

圖片
感謝
感謝室友宋行同學(xué)提供的思路,本來(lái)是想著用繪制的方法的,因?yàn)橄氲教砑訄D片的方式太過(guò)于耗費(fèi)性能,但是當(dāng)前基于項(xiàng)目時(shí)間比較緊,所以采用了室友實(shí)踐過(guò)的方案.
后續(xù)空閑時(shí)間里,會(huì)再用繪制的方式重新寫(xiě)一遍.
思路
就是兩張圖片,UIView動(dòng)畫(huà)改變圖片的大小.
需要注意的的地方就是,閱讀源碼找到改動(dòng)的位置 和 處理臨界值的情況.
附上一張我的草稿圖,圖中是按照五張滾動(dòng)圖片的情況畫(huà)的. i 代表

圖片
- index: 代表當(dāng)前展示的是哪一張
- i: 代表當(dāng)前index 情況下,輪播圖中所有pageControl的位置x 值
你可以使用代碼比較工具,查看一下我改動(dòng)了哪些代碼. 主要是TAPageControl.m,SDCycleScrollView.m,ViewController.m三個(gè)文件中.
另外,輪播器的pageCpntrol樣式一定要設(shè)置成:
cycleScrollView2.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;
關(guān)于計(jì)算pageControl
關(guān)于計(jì)算pageControl的 x 坐標(biāo)值,我們可以分為兩部分, 一步是12+5(長(zhǎng)圖片的寬度+間距)何時(shí)出現(xiàn), 還有就是5+5(短圖寬度+間距).
為了更便于直觀理解,我沒(méi)有把這兩個(gè)魔法數(shù)字替換成self.dotSize.width, self.currentDotSize.width和self.spacingBetweenDots. 大家后期封裝可以自行替換.
代碼地址
交流

希望能和大家交流技術(shù)