使用三个ImageView复用,创建轮播组件
思路:
使用currentIndex记住当前下标
滚动时,根据偏移量判断方向,从而当前下标发生变化,并重置视图
手动拖拽滚动开始,停止计时器
手动拖拽滚动结束,开始计时器
// 当前显示的是第一张图片,则左视图显示数据源最后一张,中间视图为数据源第一张,右边视图为第二张
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//保护
self.rightImageView?.imageFromURL(self.dataSource![rightImageIndex],
placeholder:placeholderImage)
}
// 当前显示的是最后一张图片,则左视图显示数据源倒数第二张,中间视图为数据源最后一张,右边视图为第一张
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)
}
// 其他情况,则左视图显示数据源当前前一张,中间视图为数据源当前,右边视图为当前后一张
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)
}