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 ...
随机推荐
- CodeIgniter类库之Benchmarking Class ,计算代码的执行时间
CodeIgniter中有个Benchmarking类库,它是被系统自动被加载的,不需要手工加载.Benchmarking类库能够计算出任意两个被标记点之间的代码执行时间.通过这个数值,可以评估程序员 ...
- Android开发之音乐播放器的实现
Android音乐播放器 使用到Android的Actiivity和Service组件 播放音频的代码应该运行在服务中,定义一个播放服务MusicService,服务里定义play.stop.paus ...
- ZJOI2008泡泡堂BNB
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1305 Solved: 676[Submit][Sta ...
- Bad Request (Invalid Hostname)解决方法
当在Windows Server 2003+IIS6做Web服务器,出现打开如http://paullevi.oicp.net,出现,Bad Request (Invalid Hostname) 的提 ...
- acdream 小晴天老师系列——晴天的后花园 (暴力+剪枝)
小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- ORACLE:profile的管理
PROFILE的管理(资源文件) 当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE 可以使用如下命令来启动当前资源限制: ...
- java的四舍五入算法
粗力度的四舍五入为整数 package math; public class MathRoundTest { /** * Math类中提供了三个与取整有关的方法:ceil,floor,round, * ...
- JPA-一对多关系
JPA中,一对多关系使用@OneToMany标示 关系维护端: package com.yl.demo1.bean.oneTomany; import javax.persistence.Cascad ...
- MD5加密帮助类
using System; using System.Collections.Generic; using System.Text; namespace AIMSCommon { /// <su ...
- the type initializer for '' threw an exception
the type initializer for '' threw an exception 问题:程序启动时初始化主窗口类时,弹出该错误.调查:查看类的构造函数是否会有异常抛出.解决:去掉类的构造函 ...