您的位置:首页 > 其它

无限轮播器

2016-04-30 15:55 309 查看
设置定时器
contentSize : 内容的大小  对应
  CGSizeMake
setContentOffset : 设置偏移量   对应   CGPointMake

+++++++++++++方法一+++++++++++++++

/**  如果有4张图片
1 .添加一个

fist图片框  
显示最后一张图片
2 .拼接图片(把前5张图片拼接成一张图)
3 .
添加last图片框  显示第一张图片
4 .内容大小赋值
   
self.scrollview.contentSize
=
CGSizeMake(KScrollView_Size.width
* (KIMG_Count
+
2),KScrollView_Size.height
);
5.
设置scrollview的属性

   
self.scrollview.delegate
=
self;

    self.scrollview.pagingEnabled
=
YES;

    self.scrollview.showsHorizontalScrollIndicator
=
NO;

    self.scrollview.bounces
=
NO;

   

    // 6 .设置pageControll的属性

    self.pageControll.currentPage
=
0;

    self.pageControll.numberOfPages
=
KIMG_Count;

   

    //初始化
图片显示是第一张图
    [self.scrollview
setContentOffset:CGPo
4000
intMake(KScrollView_Size.width,
0)];
*/

7.设置定时器
- (void)setupTimer{
   

//
创建一个NSTimer定时器对象   schedule
: 计划  Interval : 间隔

   

self.timer
= [NSTimer

scheduledTimerWithTimeInterval:2.0

target:self

selector:@selector(nextPage)

userInfo:nil

repeats:YES];
    
}
//自动跳转到下一张图片
- (void)nextPage{
   

CGFloat
offsetX =
self.scrollView.contentOffset.x
+
SCROLLVIEW_SIZE.width;

    [self.scrollView

setContentOffset:CGPointMake(offsetX,

0)

animated:YES];
}

UIScrollViewDelegate
的代理方法

//
当滚动停止的时候,滚回对应的位置
- (void)scrollViewDidEndDecelerating:(UIScrollView
*)scrollView{

***************下面判断中  scrollView  用的是 上面方法中的scrollView参数而不是
self.scrollView
 
   

if (scrollView.contentOffset.x
== (SCROLLVIEW_SIZE.width
* (IMG_COUNT
+
1))){//
滚动到了最后一个图片框

       
// 让scrollView滚动到第二个图片框
        [self.scrollView
setContentOffset:CGPointMake(SCROLLVIEW_SIZE.width,
0)]; 
    }else

if (scrollView.contentOffset.x
==
0){

       
// 让scrollView滚动到倒数第二个图片框(第五个)

        [self.scrollView

setContentOffset:CGPointMake(SCROLLVIEW_SIZE.width
*
IMG_COUNT,

0)];
    }
}

//停止滚动
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView
*)scrollView{
   

if (scrollView.contentOffset.x
== (SCROLLVIEW_SIZE.width
* (IMG_COUNT
+
1))){//
滚动到了最后一个图片框

       
// 让scrollView滚动到第二个图片框
        [self.scrollView
setContentOffset:CGPointMake(SCROLLVIEW_SIZE.width,
0)];
    }else

if (scrollView.contentOffset.x
==
0){

       
// 让scrollView滚动到倒数第二个图片框(第五个)

        [self.scrollView

setContentOffset:CGPointMake(SCROLLVIEW_SIZE.width
*
IMG_COUNT,

0)];

    }
}
//开始
拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView
*)scrollView{
   
    [self.timer

invalidate];
}
//结束拖拽
- (void)scrollViewDidEndDragging:(UIScrollView
*)scrollView willDecelerate:(BOOL)decelerate{
    [self

setupTimer];
}
//
实时计算页码

- (void)scrollViewDidScroll:(UIScrollView
*)scrollView{

   
int index =

round(scrollView.contentOffset.x
/
SCROLLVIEW_SIZE.width
-
1);

   
if (index ==

IMG_COUNT) {

        index =
0;

    }else

if (index == -1){

        index =
IMG_COUNT
-
1;

    }

   
self.pageControl.currentPage
= index;
}

+++++++++++++方法二:+++++++++++++++
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: