图片轮播组件

使用三个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)

}

你可能感兴趣的:(图片轮播组件)