//初始化当前视图
_currentImageView = [[UIImageView alloc] init];
[_currentImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:]]];
_currentImageView.frame = CGRectMake(myScroller.frame.size.width, , myScroller.frame.size.width,);
// _currentImageView.contentMode = UIViewContentModeScaleAspectFill;
[myScroller addSubview:_currentImageView]; _nextImageView = [[UIImageView alloc] init];
[_nextImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:]]];
_nextImageView.frame = CGRectMake(myScroller.frame.size.width * , , myScroller.frame.size.width,);
// _nextImageView.contentMode = UIViewContentModeScaleAspectFill;
[myScroller addSubview:_nextImageView]; //初始化上一个视图
_previousView = [[UIImageView alloc] init];
[_previousView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:]]];
_previousView.frame = CGRectMake(, ,myScroller.frame.size.width,);
// _previousView.contentMode = UIViewContentModeScaleAspectFill; [myScroller addSubview:_previousView]; } {
SMPageControl *pageControl = [[SMPageControl alloc] init];
[pageControl setFrame:CGRectMake(, myScroller.frame.size.height+ - 10.0f,myScroller.frame.size.width,10.0f)];
[pageControl setNumberOfPages:];
[pageControl setBackgroundColor:[UIColor clearColor]];
[pageControl setCurrentPage:];
[pageControl setCurrentPageIndicatorTintColor:[UIColor lightGrayColor]];
[pageControl setPageIndicatorTintColor:[UIColor grayColor]];
myPageControl=pageControl;
[self.view addSubview:myPageControl];
} if (![myTimer isValid]) {
myTimer=[NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(updateAuto) userInfo:nil repeats:YES];
} #pragma mark 时钟动画调用方法
- (void)updateAuto
{
if (_isDraging) {
return;
} CGPoint offset = myScroller.contentOffset; offset.x += self.view.frame.size.width;
if (offset.x > self.view.frame.size.width*) {
offset.x = self.view.frame.size.width;
} [myScroller setContentOffset:offset animated:YES];
} #pragma mark - 代理方法
#pragma mark 准备开始拖动
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
_isDraging = YES;
} #pragma mark 视图停止滚动
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
_isDraging = NO;
} #pragma mark 已经拖动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ static int i = ;//当前展示的是第几张图片 float offset = scrollView.contentOffset.x;
if (_nextImageView.image == nil || _previousView.image == nil) { //加载下一个视图
[_nextImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:i == kCount ? : i+]]]; //加载上一个视图
[_previousView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:i == ? kCount : i - ]]];
} if (offset == ) {
_currentImageView.image = _previousView.image;
scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, );
_previousView.image = nil; if (i == ) {
i = kCount;
}else{
i -= ;
} } if (offset == scrollView.bounds.size.width * ) {
_currentImageView.image = _nextImageView.image;
scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, );
_nextImageView.image = nil; if (i == kCount) {
i = ; //如果当前图片索引在最后一个,则重置为0,否则+1
}else{
i += ;
}
}
[myPageControl setCurrentPage:i];
}

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. Linux内核3.0移植并基于Initramfs根文件系统启动

    Linux内核移植与启动 Target borad:FL2440 Bootloader:U-boot-2010.09 交叉编译器:buildroot-2012.08 1.linux内核基础知识 首先, ...

  2. 工具----IcoFX

    IcoFX IcoFX 是一款免费的图标编辑工具,让您轻松创建 Windows XP 和 Windows Vista 图标. 在编辑区您可以轻松的预览.保存.更改您的图标.您可以将您喜欢的图像转换为图 ...

  3. Ubuntu12.04下arm交叉编译环境的建立

    http://blog.csdn.net/heyangya2009/article/details/5424376 备注:ubuntu12.04+Android+Real6410 在主机上用来编译其他 ...

  4. Spring事务Transaction配置的五种注入方式详解

    Spring事务Transaction配置的五种注入方式详解 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学 ...

  5. 解决IIS6.0不能下载EXE文件之妙方!

    2003系统 IIS6建站 有EXE文件下载 但老是不让下载.当我把站删除再建后可以下载,但过一会又不让下载了.另,MIME里有EXE这项!请问这是为什么?应如何处理? 答案: win2003服务器允 ...

  6. js变量作用域

    for(var i =0;i<100;i++) { } alert(i);//100 if(true){ var i="91d"; } alert(i);//91d func ...

  7. CPU affinity 进程和线程的亲缘性

    设置Processor Affinity 作用: 1.进程和线程的亲缘性(affinity),使进程或线程在指定的CPU(核)上运行.(比如程序A,在第4个核心上运行) 2.设置进程 或者 线程, 使 ...

  8. 消息系统Kafka介绍

    1.  概述 Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数 据.活跃的流式数据在web网站应用中非常常见,这 些数据包括网站的pv.用户访问了什么内容,搜 ...

  9. iOS7程序后台运行

    介绍 这次 iOS7 对程序后台运行进行了加强,但是仅仅是加强而已,要想像 Android 程序那样自由当然就别想了,苹果这么做主要还是出于电池使用时间考虑,但是这次的加强对大部分程序基本够用. 在介 ...

  10. 【转载】IP首部、TCP首部、UDP首部

    [转载自]http://blog.csdn.net/hjffly/article/details/7959889 IP首部 版本:L3协议版本号,IPv4或IPv6 首部长度:单位为4字节 协议:L4 ...