iOS 有关自动轮播图片
- //初始化当前视图
- _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 有关自动轮播图片的更多相关文章
- JavaScript学习之自动轮播图片
定时器 在实现轮播图之前需要首先了解一下JavaScript的定时器 setInterval()和clearInterval() 1.setInterval() 方法可按照指定的周期(以毫秒计)来调用 ...
- jQuery实际案例①——淘宝精品广告(鼠标触碰切换图片、自动轮播图片)
遇到的问题:自动轮播的实现,实质与轮播图一样儿一样儿的,不要被不同的外表所欺骗,具体的js代码如下:
- js自动轮播图片的两种循环方法(原创)
用5个div,布局从左到右5张图片,从左到右5个div分别指定ID为img1,img2,img3,img4,img5.(背景是relative,5个div是相对于背景absolute定位) 显示如下: ...
- jQuery自动轮播图片焦点图
在线演示 本地下载
- 解决:使用 swiper 自动轮播图片,当拖动过 swiper 内的内容时,导致不继续自动轮播
版本为1.3 当使用了 swiper 后: var mySwiper = new Swiper('.banner .swiper-container', { autoplay: 3000, loop: ...
- 仿网易新闻 ViewPager 实现图片自动轮播
新闻 App 首页最上方一般会循环播放热点图片,如下图所示. 本文主要介绍了利用 ViewPager 实现轮播图片,图片下方加上小圆点指示器标记当前位置,并利用 Timer+Handler 实现了自动 ...
- iOS开发笔记6:图片轮播及其无限循环效果
平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是Scro ...
- ios - 图片自动轮播定时器(NSTimer)以及消息循环模式简介
本文只是演示如何设置图片轮播的定时器. 创建全局变量NSTimer 程序启动后就开始轮播图片,所以在- (void)viewDidLoad中就启动定时器. 将定时器放入消息循环池中.- (void)v ...
- AJ学IOS(11)UI之图片自动轮播
AJ分享,必须精品 先看效果 代码 #import "NYViewController.h" #define kImageCount 5 @interface NYViewCont ...
随机推荐
- WINCE6.0+ILI9806E休眠唤醒显示异常问题
我们的系统WINCE6.0,它支持睡眠和唤醒,目的是想在不使用的时候让设备进入睡眠状态,降低功耗,我们遇到的问题就是设备正常启动后正常显示,但睡眠然后唤醒后要么显示白屏要么是条纹状白屏,如下图: 图1 ...
- ubuntu12.04升级后找不到共享目录
备注:采用VMware-workstation 10 更新命令:sudo apt-get update 今天开始搭建Android开发环境,先升级系统,升级后发现windows和ubuntu共享的目录 ...
- kali获得已经安装的软件列表
有人说是用dpkg -l ,也有说是用dpkg --get-selections. debian:~# dpkg -l|grep install|wc -l2678debian:~# dpkg --g ...
- 1136. Parliament(二叉树)
1136 先由后左 再父 建一个二叉树 #include <iostream> #include<cstdio> #include<cstring> #includ ...
- poj3468(线段树 边覆盖)
#include<cstdio> int lb,rb,data; long long sum[5000000],extra[5000000]; void add(int l,int r,i ...
- OWIN katana注册中间件的几种写法
首先特别说明下在startup中注册完中间件的两个注意事项,看到有人写的东西有误导人的作用.关于startup启动发现类的内容,参照这里 http://www.asp.net/aspnet/overv ...
- 【MySql存储过程】DATE_ADD用法
定义和用法 DATE_ADD() 函数向日期添加指定的时间间隔. 语法 DATE_ADD(date,INTERVAL expr type) date 参数是合法的日期表达式.expr 参数是您希望添加 ...
- Hibernate4.x之映射关系--双向1-n
双向1-n与双向n-1是完全相同的两种情形 双向1-n需要在1的一端可以访问n的一端,反之亦然. 域模型:从Order到Customer的多对一双向关联需要在Order类中定义一个Customer属性 ...
- 手把手教你WEB套打程序开发
WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是“空手套”式的开 ...
- [转] C# Winform 拦截关闭按钮触发的事件
原文 C# Winform 拦截关闭按钮触发的事件 用户关闭软件时,软件一般会给“是否确认关闭”的提示. 通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClos ...