使用三個(gè)ImageView復(fù)用,創(chuàng)建輪播組件
思路:
使用currentIndex記住當(dāng)前下標(biāo)
滾動(dòng)時(shí)郑诺,根據(jù)偏移量判斷方向碘梢,從而當(dāng)前下標(biāo)發(fā)生變化,并重置視圖
手動(dòng)拖拽滾動(dòng)開始袖瞻,停止計(jì)時(shí)器
手動(dòng)拖拽滾動(dòng)結(jié)束司致,開始計(jì)時(shí)器
// 當(dāng)前顯示的是第一張圖片,則左視圖顯示數(shù)據(jù)源最后一張聋迎,中間視圖為數(shù)據(jù)源第一張脂矫,右邊視圖為第二張
if self.currentIndex==0 {
? ? ? ? ? ? self.leftImageView?.imageFromURL(self.dataSource!.last!,
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
? ? ? ? ? ? self.middleImageView?.imageFromURL(self.dataSource!.first!,
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
? ? ? ? ? ? letrightImageIndex = (self.dataSource?.count)!>1?1:0//保護(hù)
? ? ? ? ? ? self.rightImageView?.imageFromURL(self.dataSource![rightImageIndex],
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
?}
?// 當(dāng)前顯示的是最后一張圖片,則左視圖顯示數(shù)據(jù)源倒數(shù)第二張霉晕,中間視圖為數(shù)據(jù)源最后一張庭再,右邊視圖為第一張
?else if self.currentIndex== (self.dataSource?.count)! -1{
? ? ? ? ? ? self.leftImageView?.imageFromURL(self.dataSource![self.currentIndex-1],
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
? ? ? ? ? ? self.middleImageView?.imageFromURL(self.dataSource!.last!,
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
? ? ? ? ? ? self.rightImageView?.imageFromURL(self.dataSource!.first!,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
?}
// 其他情況,則左視圖顯示數(shù)據(jù)源當(dāng)前前一張牺堰,中間視圖為數(shù)據(jù)源當(dāng)前拄轻,右邊視圖為當(dāng)前后一張
?else{
? ? ? ? ? ? self.leftImageView?.imageFromURL(self.dataSource![self.currentIndex-1],
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
? ? ? ? ? ? self.middleImageView?.imageFromURL(self.dataSource![self.currentIndex],
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
? ? ? ? ? ? self.rightImageView?.imageFromURL(self.dataSource![self.currentIndex+1],
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? placeholder:placeholderImage)
}