这里是oc版本的,简单记录下:

具体代码如下:

1,准备

#define FRAME [[UIScreen mainScreen] bounds]
#define WIDTH FRAME.size.width
#define HEIGHT FRAME.size.height

2,具体实现

 //scrollview的添加
_bigScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(, , WIDTH, HEIGHT)];
_bigScrollView.showsHorizontalScrollIndicator = NO;
_bigScrollView.contentSize = CGSizeMake(WIDTH *, );
_bigScrollView.pagingEnabled = YES;
_bigScrollView.bounces = NO;
_bigScrollView.delegate = self;
[self.view addSubview:_bigScrollView]; //图片内容的添加
for ( int i = ; i<; i++) {
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i *WIDTH, , WIDTH, HEIGHT)];
imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]];
[_bigScrollView addSubview:imageView];
} //pagecontrol的创建
_pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(, , WIDTH, )] ;
_pageControl.center = CGPointMake(_bigScrollView.center.x, _bigScrollView.center.y);
_pageControl.numberOfPages = ;
_pageControl.currentPage = ;
_pageControl.pageIndicatorTintColor = [UIColor blueColor];
_pageControl.currentPageIndicatorTintColor =[UIColor redColor];
[self.view addSubview:_pageControl];
[_pageControl addTarget:self action:@selector(pageControllerClick) forControlEvents:UIControlEventValueChanged]; //定时器的创建
_timer = [NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

3,响应方法的实现

-(void)pageControllerClick
{
[_bigScrollView setContentOffset:CGPointMake(_pageControl.currentPage*, ) animated:YES];
} //在scrollview开始手动滑动的时候
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[_timer setFireDate:[NSDate distantFuture]];
} //在scrollview添加一个延迟方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{ _pageControl.currentPage = _bigScrollView.contentOffset.x/WIDTH;
[self performSelector:@selector(disPast) withObject:nil afterDelay:];//延迟方法 } //启动定时器
-(void)disPast
{
[_timer setFireDate:[NSDate distantPast]];
} static int count=; //定时器的具体响应方法
-(void)onTimer
{
_pageControl.currentPage+=count;
if (_pageControl.currentPage==_pageControl.numberOfPages-||_pageControl.currentPage==)
{
count=-count;
};
[_bigScrollView setContentOffset:CGPointMake(_pageControl.currentPage*WIDTH, ) animated:YES]; }

效果图就不加了,这里仅做记录用!

ios开发之 -- 自动轮播图创建的更多相关文章

  1. swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)

    比较简单,原理就不说了,这里只做记录: 代码如下: 1,准备 var pageControl:UIPageControl? var myscrollView:UIScrollView? var myT ...

  2. 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)

    大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...

  3. iOS开发之保存照片到自己创建的相簿

    iOS开发之保存照片到自己创建的相簿 保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片.视频的访问,是连接应用程序和相册之间访问的一个桥梁. ...

  4. 原生js手动轮播图

    手动轮播图,为轮播图中的一种,轮播图主要有无缝轮播,手动轮播,延迟轮播,切换轮播等等... 轮播图主要用于展现图片,新出商品,词条,又能美观网页.給网页中增加动态效果. 手动轮播,是小编认为最简单的一 ...

  5. JS实现自动轮播图效果(js案例)

    现在很多网站都有轮播图,这篇文章主要为大家详细介绍了js实现轮播图的完整代码及原理,需要的小伙伴可以参考一下. 1.轮播图主要功能: 1.  图片自动轮播(主图切换同时下面导航图片也会跟着变化) 2. ...

  6. IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序

    前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...

  7. iOS开发:icon和启动图尺寸

    歪果仁的总结: Asset iPhone 6s Plus and iPhone 6 Plus (@3x) iPhone 6s, iPhone 6, and iPhone 5 (@2x) iPhone ...

  8. iOS开发:icon和启动图尺寸(转)

    转至:http://www.cnblogs.com/shaoting/p/4941634.html 歪果仁的总结: Asset iPhone 6s Plus and iPhone 6 Plus (@3 ...

  9. 用Vue来实现音乐播放器(八):自动轮播图啊

    slider.vue组件的模板部分 <template> <div class="slider" ref="slider"> <d ...

随机推荐

  1. 【转】Mysql两种存储引擎的异同【MyISAM和InnoDB】

    MySQL默认采用的是MyISAM. MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以 ...

  2. mysql utf8mb4 所引起的问题

    有一个项目需要存储ios的表情(emoji表情)这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而MySQL utf8编码只能存放3字节的字符.在MySQL 5.6中,可以设置编码为utf8 ...

  3. sql增删改查封装

    App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  4. 基于Discuz的原生态MVC框架Uxf

    前言 国内大量网站在使用Discuz程序,当然,大多数网站只将其作为一款论坛程序,少量的将其作为一款完整的社区程序.因此,授权不授权的情况撇开不谈,很多人都会基于该款程序进行二次开发. Discuz二 ...

  5. 支持向量机(SVM)(三)-- 最优间隔分类器(optimal margin classifier)

    在之前为了寻找最有分类器,我们提出了例如以下优化问题: 在这里我们能够把约束条件改写成例如以下: 首先我们看以下的图示: 非常显然我们能够看出实线是最大间隔超平面,如果×号的是正例,圆圈的是负例.在虚 ...

  6. Linq中的ToList()和CopyToDataTable()

    最近在项目中使用了Linq,想把Linq的查询结果直接转换成DataTable对象,通过查找发现Linq有一个CopyToDataTable<T>的泛型方法,该方法只能在T是DataRow ...

  7. java-request与response编码问题

    一.request.setCharacterEncoding("utf-8") 二.response.setContentType("text/html;charset= ...

  8. 可能是目前最完整的前端框架 Vue.js 全面介绍

    Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架. 摘要 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angul ...

  9. 20 个 jQuery 和 CSS 的文本特效插件

    Jumble Text Effect Plugins Demo || Download Vticker – Vertical News Ticker With JQuery Plugin Demo | ...

  10. altium designer应用技巧---cyclone IV代芯片底部焊盘问题

    首先对于 altera 公司的FPGA芯片来讲,在cyclone III代以上,芯片的底部增加了一 个焊盘,很多工程师往往以为是散热用,其实不然,底部焊盘需要接地(altera手册上面 明确规定,Th ...