Skip to content

Harryyan/InfiniteScrollView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

InfiniteScrollView

Swift 无限循环 ScrollView 自定义Page Control

##简单介绍 使用Swift语言和iOS SDK8 实现循环滚动效果;可用于首页banner,展示活动或者广告等信息。自定义UIScrollView, 内嵌UIImageView, 可从网络拉取数据进行填充,方便结合SDWebImage等第三方库进行扩展。本例仅仅是一个小Demo, 所用图片均在ImageSet中, 并未从网络拉取(原版OC实现了网络拉取).同时实现了自定义page control, 不同于自带圆点page control, 本例使用bottom bar做page control, 可自定义颜色;By the way, 定义了UIColorFromRGB函数, 方便直接取16进制颜色代码拷贝。仔细阅读源代码,十分方便扩展,今后也可能会持续更新,完善。

HYInfiniteScrollView的逻辑较为复杂, 不类似UITableView的内存重用的管理方式(本人还有另一个控件--照片浏览控件,实现了UITableView式的重用机制,稍后分享)。 基本考虑了所有边界情况(1张,2张和多张情况), 原版上线未出bug。

##如何使用 本控件使用时只需要初始化和设定几个参数值即可, 关键代码如下:

let scrollViewRect: CGRect = CGRectMake(0, self.navigationController!.navigationBar.bounds.height, self.view.bounds.width, 200)

self.scrollView = HYInfiniteScrollView.init(frame: scrollViewRect)
self.scrollView.autoresizingMask = UIViewAutoresizing.FlexibleWidth |   
                                   UIViewAutoresizing.FlexibleHeight
self.scrollView.animationEnable = true
self.scrollView.animationDuration = 3.0
self.scrollView.slideBarEnable = true
self.scrollView.delegate = self

let imgArr: NSArray = [1,2,3,4,5]
self.scrollView.reloadActivityItem(imgArr)
    
self.view.addSubview(self.scrollView)

reloadActivityItem 这个方法是外界传参的接口, 本Demo传入值很简单,只起到循环作用,原版OC封装了自己的数据类和相应接口,诸位可以自己扩展。

另外有些delegate没有实现,但不影响功能。

##截图如下:

Mou icon Mou icon

About

Swift 无限循环 ScrollView 自定义Page Control

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages