1. //初始化当前视图
  2. _currentImageView = [[UIImageView alloc] init];
  3. [_currentImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:]]];
  4. _currentImageView.frame = CGRectMake(myScroller.frame.size.width, , myScroller.frame.size.width,);
  5. // _currentImageView.contentMode = UIViewContentModeScaleAspectFill;
  6. [myScroller addSubview:_currentImageView];
  7.  
  8. _nextImageView = [[UIImageView alloc] init];
  9. [_nextImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:]]];
  10. _nextImageView.frame = CGRectMake(myScroller.frame.size.width * , , myScroller.frame.size.width,);
  11. // _nextImageView.contentMode = UIViewContentModeScaleAspectFill;
  12. [myScroller addSubview:_nextImageView];
  13.  
  14. //初始化上一个视图
  15. _previousView = [[UIImageView alloc] init];
  16. [_previousView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:]]];
  17. _previousView.frame = CGRectMake(, ,myScroller.frame.size.width,);
  18. // _previousView.contentMode = UIViewContentModeScaleAspectFill;
  19.  
  20. [myScroller addSubview:_previousView];
  21.  
  22. }
  23.  
  24. {
  25. SMPageControl *pageControl = [[SMPageControl alloc] init];
  26. [pageControl setFrame:CGRectMake(, myScroller.frame.size.height+ - 10.0f,myScroller.frame.size.width,10.0f)];
  27. [pageControl setNumberOfPages:];
  28. [pageControl setBackgroundColor:[UIColor clearColor]];
  29. [pageControl setCurrentPage:];
  30. [pageControl setCurrentPageIndicatorTintColor:[UIColor lightGrayColor]];
  31. [pageControl setPageIndicatorTintColor:[UIColor grayColor]];
  32. myPageControl=pageControl;
  33. [self.view addSubview:myPageControl];
  34. }
  35.  
  36. if (![myTimer isValid]) {
  37. myTimer=[NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(updateAuto) userInfo:nil repeats:YES];
  38. }
  39.  
  40. #pragma mark 时钟动画调用方法
  41. - (void)updateAuto
  42. {
  43. if (_isDraging) {
  44. return;
  45. }
  46.  
  47. CGPoint offset = myScroller.contentOffset;
  48.  
  49. offset.x += self.view.frame.size.width;
  50. if (offset.x > self.view.frame.size.width*) {
  51. offset.x = self.view.frame.size.width;
  52. }
  53.  
  54. [myScroller setContentOffset:offset animated:YES];
  55. }
  56.  
  57. #pragma mark - 代理方法
  58. #pragma mark 准备开始拖动
  59. - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
  60. {
  61. _isDraging = YES;
  62. }
  63.  
  64. #pragma mark 视图停止滚动
  65. - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
  66. {
  67. _isDraging = NO;
  68. }
  69.  
  70. #pragma mark 已经拖动
  71. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  72.  
  73. static int i = ;//当前展示的是第几张图片
  74.  
  75. float offset = scrollView.contentOffset.x;
  76. if (_nextImageView.image == nil || _previousView.image == nil) {
  77.  
  78. //加载下一个视图
  79. [_nextImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:i == kCount ? : i+]]];
  80.  
  81. //加载上一个视图
  82. [_previousView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:i == ? kCount : i - ]]];
  83. }
  84.  
  85. if (offset == ) {
  86. _currentImageView.image = _previousView.image;
  87. scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, );
  88. _previousView.image = nil;
  89.  
  90. if (i == ) {
  91. i = kCount;
  92. }else{
  93. i -= ;
  94. }
  95.  
  96. }
  97.  
  98. if (offset == scrollView.bounds.size.width * ) {
  99. _currentImageView.image = _nextImageView.image;
  100. scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, );
  101. _nextImageView.image = nil;
  102.  
  103. if (i == kCount) {
  104. i = ; //如果当前图片索引在最后一个,则重置为0,否则+1
  105. }else{
  106. i += ;
  107. }
  108. }
  109. [myPageControl setCurrentPage:i];
  110. }

iOS 有关自动轮播图片的更多相关文章

  1. JavaScript学习之自动轮播图片

    定时器 在实现轮播图之前需要首先了解一下JavaScript的定时器 setInterval()和clearInterval() 1.setInterval() 方法可按照指定的周期(以毫秒计)来调用 ...

  2. jQuery实际案例①——淘宝精品广告(鼠标触碰切换图片、自动轮播图片)

    遇到的问题:自动轮播的实现,实质与轮播图一样儿一样儿的,不要被不同的外表所欺骗,具体的js代码如下:

  3. js自动轮播图片的两种循环方法(原创)

    用5个div,布局从左到右5张图片,从左到右5个div分别指定ID为img1,img2,img3,img4,img5.(背景是relative,5个div是相对于背景absolute定位) 显示如下: ...

  4. jQuery自动轮播图片焦点图

    在线演示 本地下载

  5. 解决:使用 swiper 自动轮播图片,当拖动过 swiper 内的内容时,导致不继续自动轮播

    版本为1.3 当使用了 swiper 后: var mySwiper = new Swiper('.banner .swiper-container', { autoplay: 3000, loop: ...

  6. 仿网易新闻 ViewPager 实现图片自动轮播

    新闻 App 首页最上方一般会循环播放热点图片,如下图所示. 本文主要介绍了利用 ViewPager 实现轮播图片,图片下方加上小圆点指示器标记当前位置,并利用 Timer+Handler 实现了自动 ...

  7. iOS开发笔记6:图片轮播及其无限循环效果

    平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是Scro ...

  8. ios - 图片自动轮播定时器(NSTimer)以及消息循环模式简介

    本文只是演示如何设置图片轮播的定时器. 创建全局变量NSTimer 程序启动后就开始轮播图片,所以在- (void)viewDidLoad中就启动定时器. 将定时器放入消息循环池中.- (void)v ...

  9. AJ学IOS(11)UI之图片自动轮播

    AJ分享,必须精品 先看效果 代码 #import "NYViewController.h" #define kImageCount 5 @interface NYViewCont ...

随机推荐

  1. WINCE6.0+ILI9806E休眠唤醒显示异常问题

    我们的系统WINCE6.0,它支持睡眠和唤醒,目的是想在不使用的时候让设备进入睡眠状态,降低功耗,我们遇到的问题就是设备正常启动后正常显示,但睡眠然后唤醒后要么显示白屏要么是条纹状白屏,如下图: 图1 ...

  2. ubuntu12.04升级后找不到共享目录

    备注:采用VMware-workstation 10 更新命令:sudo apt-get update 今天开始搭建Android开发环境,先升级系统,升级后发现windows和ubuntu共享的目录 ...

  3. kali获得已经安装的软件列表

    有人说是用dpkg -l ,也有说是用dpkg --get-selections. debian:~# dpkg -l|grep install|wc -l2678debian:~# dpkg --g ...

  4. 1136. Parliament(二叉树)

    1136 先由后左 再父 建一个二叉树 #include <iostream> #include<cstdio> #include<cstring> #includ ...

  5. poj3468(线段树 边覆盖)

    #include<cstdio> int lb,rb,data; long long sum[5000000],extra[5000000]; void add(int l,int r,i ...

  6. OWIN katana注册中间件的几种写法

    首先特别说明下在startup中注册完中间件的两个注意事项,看到有人写的东西有误导人的作用.关于startup启动发现类的内容,参照这里 http://www.asp.net/aspnet/overv ...

  7. 【MySql存储过程】DATE_ADD用法

    定义和用法 DATE_ADD() 函数向日期添加指定的时间间隔. 语法 DATE_ADD(date,INTERVAL expr type) date 参数是合法的日期表达式.expr 参数是您希望添加 ...

  8. Hibernate4.x之映射关系--双向1-n

    双向1-n与双向n-1是完全相同的两种情形 双向1-n需要在1的一端可以访问n的一端,反之亦然. 域模型:从Order到Customer的多对一双向关联需要在Order类中定义一个Customer属性 ...

  9. 手把手教你WEB套打程序开发

    WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是“空手套”式的开 ...

  10. [转] C# Winform 拦截关闭按钮触发的事件

    原文 C# Winform 拦截关闭按钮触发的事件 用户关闭软件时,软件一般会给“是否确认关闭”的提示. 通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClos ...