ios开发之 -- 自动轮播图创建
这里是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开发之 -- 自动轮播图创建的更多相关文章
- swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
比较简单,原理就不说了,这里只做记录: 代码如下: 1,准备 var pageControl:UIPageControl? var myscrollView:UIScrollView? var myT ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- iOS开发之保存照片到自己创建的相簿
iOS开发之保存照片到自己创建的相簿 保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片.视频的访问,是连接应用程序和相册之间访问的一个桥梁. ...
- 原生js手动轮播图
手动轮播图,为轮播图中的一种,轮播图主要有无缝轮播,手动轮播,延迟轮播,切换轮播等等... 轮播图主要用于展现图片,新出商品,词条,又能美观网页.給网页中增加动态效果. 手动轮播,是小编认为最简单的一 ...
- JS实现自动轮播图效果(js案例)
现在很多网站都有轮播图,这篇文章主要为大家详细介绍了js实现轮播图的完整代码及原理,需要的小伙伴可以参考一下. 1.轮播图主要功能: 1. 图片自动轮播(主图切换同时下面导航图片也会跟着变化) 2. ...
- IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序
前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...
- iOS开发:icon和启动图尺寸
歪果仁的总结: Asset iPhone 6s Plus and iPhone 6 Plus (@3x) iPhone 6s, iPhone 6, and iPhone 5 (@2x) iPhone ...
- iOS开发:icon和启动图尺寸(转)
转至:http://www.cnblogs.com/shaoting/p/4941634.html 歪果仁的总结: Asset iPhone 6s Plus and iPhone 6 Plus (@3 ...
- 用Vue来实现音乐播放器(八):自动轮播图啊
slider.vue组件的模板部分 <template> <div class="slider" ref="slider"> <d ...
随机推荐
- feginclient和hystrix的配置
1.如果设置了 feign: hystrix: enabled: true 则 @FeignClient(value = "service-hi",configuration = ...
- u-boot编译
u-boot目的:启动内核1.从flash读出内核,放到SDRAM中2.启动内核 u-boot要实现的功能:-----硬件相关的初始化---- ---开发的功能--------- 关看门够 ...
- 被linux线程基础折磨的点滴——还是没得到完美的答案,但至少得到了所需
#include<sys/types.h> #include<unistd.h> #include<stdio.h> #include<stdlib.h> ...
- js中定义属性和变量
//定义数组 var arr = []; //定义对象 var obj = {}; //定义正则表达式 var reg = /../;
- iOS菊花加载圈
自定制一个继承于UIView的类然后重写initWithFrame方法;如下 - (id)initWithFrame:(CGRect)frame { self = [super initWithFra ...
- Linux maven 下 jar包下载不下来的解决方法
在项目中遇到一个问题,使用推送的中间件,结果使用maven下载不下来,当时就直接手动下载后,copy到本地仓库了, 结果发布的时候遇到问题了. 因为发布是直接在测试服务器上,将提交的svn代码进行打包 ...
- MapReduce的集群行为和框架
MapReduce的集群行为 MapReduce的集群行为包括: 1.任务调度与执行MapReduce任务由一个JobTracker和多个TaskTracker两类节点控制完成.(1)JobTrack ...
- CentOS-6.4-minimal版中安装MongoDB-x86_64-3.0.2
完整版见https://jadyer.github.io/2015/06/03/centos-install-mongodb/ /** * CentOS-6.4-minimal版中安装MongoDB- ...
- Juint测试
添加"Juint测试"组件: 之后不用写在main方法里面便可以直接测试:
- qt 编译的文件没有生效
/******************************************************************* * qt 编译的文件没有生效 * qt交叉编译时,生成的可执行 ...