MLInfiniteScrollView - 实现无限自动滚动的轮播图 ScrollView
实现无限自动滚动的轮播图 ScrollView, 可以通过继承 MLInfiniteScrollViewCell 来实现自定义 Cell 的展示.
例子: UIViewController 中添加一个 MLInfiniteScrollView
-
声明一个 MLInfiniteScrollView成员变量(我推荐您这么做, 因为您需要在 ViewWillDisAppear 方法中调用 MLInfiniteScrollView 实例的 startAutoScroll 方法来停止滚动, 否则由于定时器的存在, 将会无法释放.) 和 NSMutableArray数据源数组.
@property (nonatomic, strong) MLInfiniteScrollView *scrollView;
@property (nonatomic, strong) NSMutableArray *dataSource;
-
初始化您的数据源数组, 在这里我们给数据源数组添加 UIColor 实例.
self.dataSource = [[NSMutableArray alloc] initWithObjects:@{@"color":[UIColor redColor], @"title":@"红色"}, @{@"color":[UIColor orangeColor], @"title":@"橙色"}, @{@"color":[UIColor yellowColor], @"title":@"黄色"}, @{@"color":[UIColor greenColor], @"title":@"绿色"}, @{@"color":[UIColor cyanColor], @"title":@"青色"}, @{@"color":[UIColor blueColor], @"title":@"蓝色"}, @{@"color":[UIColor purpleColor], @"title":@"紫色"}, @{@"color":[UIColor brownColor], @"title":@"棕色"}, nil];
-
初始化 MLInfiniteScrollView, 您只需要调用这一个工厂方法, 便可以轻松实例化一个 MLInfiniteScrollView 实例.
self.scrollView = [MLInfiniteScrollView infiniteScrollViewWithFrame: CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, 200) delegate:self dataSource:self timeInterval:4.0 inView: self.view];
-
实现 MLInfiniteScrollView 的数据源方法
(NSInteger) numberOfItemsInInfiniteScrollView:(MLInfiniteScrollView *)scrollView
{
return self.dataSource.count;
}
(MLInfiniteScrollViewCell *) infiniteScrollView:(MLInfiniteScrollView *)scrollView viewAtIndex:(NSInteger)index
{
MLInfiniteScrollViewCell *cell = [scrollView dequeueReusableCellWithIdentifier: @"CellIdentifier"]; if (!cell) { cell = [MLInfiniteScrollViewCell infiniteScrollViewCellWithStyle: MLInfiniteScrollViewStyleSubTitle reusableIdentifier: @"CellIdentifier" bounds: scrollView.bounds]; } cell.contentView.backgroundColor = [self.dataSource[index] objectForKey:@"color"]; if (index%2) { cell.textLabel.text = [self.dataSource[index] objectForKey: @"title"]; } else { cell.imageView.image = [UIImage imageNamed:@"data18.bin_1"]; } return cell;
请在 ViewController 的 ViewWillAppear 中加入以下代码
(void) viewWillAppear:(BOOL)animated
{ [super viewWillAppear: animated]; [self.scrollView startAutoScroll]; }
请在 ViewController 的 ViewWillDisappear 中加入以下代码
(void) viewWillDisappear:(BOOL)animated
{ [super viewWillDisappear: animated]; [self.scrollView stopAutoScroll]; }
简单的几步, 就已经实现了一个轮播图的效果. 当然您还可以继承 MLInfiniteScrollViewCell 类来实现自定义的 Cell, 更多详情请参照 MLInfiniteScrollViewDemo.
https://github.com/dbseven/MLInfiniteScrollView