图片轮播组件

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

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容