三张Imageview实现无限图片轮播

代码部分:

//  Created by 妖精的尾巴 on 15-8-24.

//  Copyright (c) 2015年 妖精的尾巴. All rights reserved.

//

#import "ViewController.h"

#define kImageCount 4

@interface ViewController ()<UIScrollViewDelegate>

/**

*滚动视图的控件

*/

@property(nonatomic,strong)UIScrollView* scroll;

/**

*页码指示视图的控件

*/

@property(nonatomic,strong)UIPageControl* pageControl;

/**

*显示左边图片的控件

*/

@property(nonatomic,strong)UIImageView* LeftImageView;

/**

*显示中心图片的控件

*/

@property(nonatomic,strong)UIImageView* centerImageView;

/**

*显示右边图片的控件

*/

@property(nonatomic,strong)UIImageView* rightImageView;

/**

*保存图片的数组

*/

@property(nonatomic,strong)NSArray* imageArray;

/**

*图片的当前下标索引

*/

@property(nonatomic,assign)int currentIndex;

/**

*图片总数

*/

@property(nonatomic,assign)int imageCount;

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

self.view.backgroundColor=[UIColor blackColor];

self.currentIndex=0;

[self createScrollView];

[self createPageControl];

[self createImageView];

[self loadImage];

[self setImageByIndex:self.currentIndex];

}

/**

*以下是搭建UI界面的方法

*/

-(void)loadImage

{

self.imageArray=@[@"0.jpg",@"1.jpg",@"2.jpg",@"3.jpg"];

self.imageCount=self.imageArray.count;

}

-(void)createScrollView

{

self.scroll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 180, 320, 220)];

self.scroll.backgroundColor=[UIColor redColor];

self.scroll.showsHorizontalScrollIndicator=NO;

self.scroll.showsVerticalScrollIndicator=NO;

self.scroll.pagingEnabled=YES;

self.scroll.bounces=NO;

self.scroll.delegate=self;

self.scroll.contentOffset=CGPointMake(320, 0);

self.scroll.contentSize=CGSizeMake(320*kImageCount, 220);

[self.view addSubview:self.scroll];

}

-(void)createPageControl

{

self.pageControl=[[UIPageControl alloc]initWithFrame:CGRectMake(130, 568*0.9, 60, 20)];

self.pageControl.currentPageIndicatorTintColor=[UIColor redColor];

self.pageControl.pageIndicatorTintColor=[UIColor blueColor];

self.pageControl.enabled=YES;

self.pageControl.numberOfPages=kImageCount;

[self.view addSubview:self.pageControl];

}

-(void)createImageView

{

self.LeftImageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 220)];

[self.scroll addSubview:self.LeftImageView];

self.centerImageView=[[UIImageView alloc]initWithFrame:CGRectMake(320, 0, 320, 220)];

[self.scroll addSubview:self.centerImageView];

self.rightImageView=[[UIImageView alloc]initWithFrame:CGRectMake(640, 0, 320, 220)];

[self.scroll addSubview:self.rightImageView];

}

#pragma mark ----刷新图片

-(void)refreshImage

{

if (self.scroll.contentOffset.x>320) {

self.currentIndex=((self.currentIndex+1)%self.imageCount);

}

else if(self.scroll.contentOffset.x<320){

self.currentIndex=((self.currentIndex-1+self.imageCount)%self.imageCount);

}

[self setImageByIndex:self.currentIndex];

}

#pragma mark ----该方法根据传回的下标设置三个ImageView的图片

-(void)setImageByIndex:(int)currentIndex

{

NSString* curruntImageName=[NSString stringWithFormat:@"%d.jpg",currentIndex];

self.centerImageView.image=[UIImage imageNamed:curruntImageName];

NSLog(@"当前页的名字是:%@",curruntImageName);

self.LeftImageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",((self.currentIndex-1+self.imageCount)%self.imageCount)]];

NSLog(@"左边的图片名字是:%@",[NSString stringWithFormat:@"%d.jpg",((self.currentIndex-1+self.imageCount)%self.imageCount)]);

self.rightImageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",((self.currentIndex+1)%self.imageCount)]];

NSLog(@"右边的图片名字是:%@",[NSString stringWithFormat:@"%d.jpg",((self.currentIndex+1)%self.imageCount)]);

self.pageControl.currentPage=currentIndex;

}

#pragma mark ----UIScrollViewDelegate代理方法(停止加速时调用)

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

[self refreshImage];

self.scroll.contentOffset = CGPointMake(320,0);

self.pageControl.currentPage = self.currentIndex;

NSLog(@"停止了加速,停在第%d页",self.pageControl.currentPage+1);

}

程序截图:

时间: 2024-10-09 11:18:14

三张Imageview实现无限图片轮播的相关文章

UICollectionView实现无限图片轮播

目的:无限图片轮播 技术:UICollectionView 技术要点:利用UICollectionViewCell的重用实现无限图片轮播,实例提供5张图片 主控制器代码 //  ViewController.m //  UICollectionView-无限轮播-demo #import "ViewController.h" #import "BQAdvCell.h" #import "BQBeauty.h" @interface ViewCon

沉浸式图片轮播器 -- DDGBannerScrollView使用文档

写在前面 几乎每个app都会用到图片轮播器,而且图片轮播器也越来越高大上,沉浸式等拉高了APP的档次 ,没有一个高大上的图片轮播器,都不好意思上架. 像一些知名的app都采用了图片轮播的背景渐变色,举几个栗子:优酷的首页,喜马拉雅,蜻蜓fm,哔哩哔哩漫画等, page索引也是玩的很高大上,系统的早已满足不了了需求. 鉴于此和项目的需要,在前人的基础上,整理了一个这个库,志在简单的几句代码,就能让应用看上去高大上. github:[DDGBannerScrollView](https://gith

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

利用jQuery实现图片无限循环轮播(不借助于轮播插件)

原来我主要是用Bootstrap来实现轮播图的功能,而这次是用javaScript和jQuery来实现图片无限循环轮播! 用到的技术有:html.css.JavaScript(少).jQuery(主要) 效果展示: html代码: <body> <div id="container"><!-- left:-600px 表示:页面加载出现的第一张图片是1.jp --> <div id="list" style="le

IOS 图片轮播实现原理 (三图)

IOS 图片轮播实现原理的一种 图片轮播所要实现的是在一个显示区域内通过滑动来展示不同的图片. 当图片较少时我们可以采用在滚动视图上添加很多张图片来实现. 但是如果图片数量较多时,一次性加载过多图片会浪费内存,影响性能. 因此我们要采取适当地方法来实现图片的轮播. 下面我们只是简单的介绍很多方法中的一种简单的实现原理. 一 二 三 四 五 六 七

UISCrollView —— 图片轮播器封装实现(三)——(第三讲)

1.分析 利用xib布局,然后自定义一个UIView,解析xib,然后利用控制器传入数据,将其加载到控制器的view上展示即可 2. 程序结构 3. 代码具体实现 1>  xib文件 2>  创建类 XMGPageView,然后将其与xib文件关联,选中xib文件,然后设置下文中 " custom class " 为定义的类,让其来管理xib 1>    (如图,设置xib与类关联) 2>  XMGPageView.h 文件中,声明分页图片数组属性,及其一个快速

UISCrollView —— 图片轮播器实现(三)——(第二讲)

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST

自定义View之无限大图轮播ShufBanner

无限大图轮播–ShufBanner 轮播图作为一个app的宣传,展示等,往往占据着一个很重要的地位,大部分app都将其放在首页.那么通常的做法都是使用ViewPager,使其能够作用滑动,而无限轮播无外乎两种做法. - 第一种是将ViewPager的size定义为无限大,定义其初始显示的位置为中间,这样的话因为左或者右都有很多的页面,所以造成了一种可以无限轮播的假象.同时因为ViewPager的特性,其只是加载当前显示page以及左和右的三个页面,不用担心OOM. - 第二种是,将ViewPag

Android高级图片滚动控件,编写3D版的图片轮播器

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博客了,我也是深感惭愧.那么今天的这篇既然是阔别了一个多月的文章,当然要带来更加给力点的内容了,那么话不多说,赶快进入到今天的正题吧. 说 到图片轮播器,很多的Android应用中都会带有这个功能,比如说网易新闻.淘宝等.最新我们公司的一款应用也加入了这个功能,并且在图片轮播的基础上 还增加了三维立体