IOS 利用UIScrollView实现无限轮播图
来源:互联网 发布:java acos函数 编辑:程序博客网 时间:2024/06/14 12:19
- 需要用到的控件 :
UIScrollView :用来显示滚动图片
UIPageControl:显示滚动的当前页
- 实现的代理
UIScrollViewDelegate
- 实现的代理方法
1、- (void)scrollViewDidScroll:(UIScrollView *)scrollView
2、- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
3、- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
实现思路及部分代码:
思路:利用scrollView的属性contentOffset.x(偏移量)判断当前视图是向左移动还是向右移动
重点在于当视图滚动到最后一张的时候怎么才能让它继续向后滚动,而不是向前移动到第
一个而后继续滚动。既然它滚动到最后一张还要往后滚动,那么我们可以将视图集合中的
最后元素的接下来的元素设置为原来集合中的第一个元素。这就需要视图每滚动一次就得
做一次元素的移动。
部分代码:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x >= 2 * CGRectGetWidth(self.bounds)) {
id firstsObject = [_imagesArray.firstObject mutableCopy];
[_imagesArray removeObjectAtIndex:0];
[_imagesArray addObject:firstsObject];
self.pageControl.currentPage = self.pageControl.currentPage == self.imagesArray.count - 1?0 :++self.pageControl.currentPage;
} else if (scrollView.contentOffset.x <= 0){
id lastObject = [_imagesArray.lastObject mutableCopy];
[_imagesArray removeLastObject];
[_imagesArray insertObject:lastObject atIndex:0];
self.pageControl.currentPage = self.pageControl.currentPage == 0 ? _imagesArray.count - 1 :--self.pageControl.currentPage;
} else {
return;
}
[self reloadImage];
scrollView.contentOffset = CGPointMake(CGRectGetWidth(self.bounds), 0);
} - (void)reloadImage
{
int index = 0;
for (UIImageView *imageView in self.imageViewArray) {
UIImage *image = [UIImage imageNamed:self.imagesArray[index]];
imageView.image = image;
index ++;
}
}- (void)addTimer
{
// 启动定时器
_timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:3];
self.timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(respondsToTimer) use rInfo:nil repeats:YES];
}
- (void)respondsToTimer {
// 将滚动视图的偏移量显示在右边视图上计时器开始就让视图向右滚动
[_scrollView setContentOffset:CGPointMake(2 * CGRectGetWidth(self.bounds), 0) animated:YES];
}
- IOS 利用UIScrollView实现无限轮播图
- iOS使用UIScrollView实现无限循环轮播图
- iOS-利用UIScrollView实现展示图片的无限滚动及自动滚动
- iOS-利用UIScrollView实现展示图片的无限滚动及自动滚动
- iOS-利用UIScrollView实现展示图片的无限滚动及自动滚动 - 郭晓
- iOS UIScrollView 实现轮播图
- 利用UIScrollView无限读取图片
- iOS UIScrollView实现无限滚动,思路与代码
- iOS之UIScrollView实现无限滚动,思路与代码
- 利用UIScrollView实现展示图片的无限滚动及自动滚动
- Swift - 利用UIScrollView 实现轮播图
- 【无限互联】iOS开发之瀑布流布局实现(UIScrollView子类化实现)
- iOS UIImageView利用UIScrollView实现图片循环滚动
- UIScrollView中的contentView无限循环 - iOS开发
- iOS解析--自动无限循环UIScrollView原理
- iOS解析--自动无限循环UIScrollView原理
- 使用UIScrollView实现图片无限循环浏览
- UIScrollView实现图片轮播器的无限滚动
- HDU5519 Kykneion asma (指数生成函数+快速数论变换模任意数+启发式合并思想)
- c# - Resolve<T> to create instance
- 使用Fresco出现的问题
- [iOS AppStore] 根据AppStore中的App版本 做跟新提示
- Java 之 JDK 的下载,安装,及Java环境配置教程(一)
- IOS 利用UIScrollView实现无限轮播图
- summernote 赋值 以及 取值
- 内存管理单元 MMU
- 关于UICollectionView 自动滑动的问题
- Resin在linux上安装
- SAP 如何定义后台job
- Android中的广播使用全解析
- 【codevs 3955】最长严格上升子序列(加强版)
- 怎么在NS2中添加一个协议