#define HEIGHT  self.view.frame.size.height

#define WIDTH    self.view.frame.size.width

@interface ViewController : UIViewController<UIScrollViewDelegate>

@property (strong,nonatomic) UIScrollView *myScorolV;

@property (strong,nonatomic) UIPageControl *pageC;

@property (strong,nonatomic) NSMutableArray *arrPage;

@property (strong,nonatomic) UIImageView *threeImage;

@property (strong,nonatomic) UIImageView *secondImage;

@property (strong,nonatomic) UIImageView *firstImage;

@property (assign,nonatomic) int currentPage;

@end

//滚动视图创建

self.myScorolV = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];

self.myScorolV.contentSize = CGSizeMake(WIDTH * 3, 0);

self.myScorolV.pagingEnabled = YES;

self.myScorolV.showsHorizontalScrollIndicator = NO;

self.myScorolV.delegate = self;

[self.view addSubview:self.myScorolV];

//分页视图

self.pageC = [[UIPageControl alloc] initWithFrame:CGRectMake(WIDTH / 5 * 2, HEIGHT - 80, WIDTH / 5, 40)];

self.pageC.backgroundColor = [UIColor clearColor];

self.pageC.currentPage = 0;

self.pageC.numberOfPages = 5;

//指定页码颜色

self.pageC.currentPageIndicatorTintColor = [UIColor redColor];

self.pageC.pageIndicatorTintColor = [UIColor greenColor];

[self.view addSubview:self.pageC];

self.arrPage = [NSMutableArray arrayWithCapacity:10];

for (int i = 1; i < 6; i++)

{

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]];

[self.arrPage addObject:image];

}

self.firstImage = [[UIImageView alloc] init];

self.secondImage = [[UIImageView alloc] init];

self.threeImage = [[UIImageView alloc] init];

self.currentPage = 0;

[self relodeImage];

}

-(void)relodeImage

{

if (self.currentPage == 0)

{

self.firstImage.image = [self.arrPage lastObject];

self.secondImage.image = [self.arrPage objectAtIndex:self.currentPage];

self.threeImage.image = [self.arrPage objectAtIndex:self.currentPage + 1];

}

else if (self.currentPage == self.arrPage.count - 1)

{

self.firstImage.image = [self.arrPage objectAtIndex:self.currentPage - 1];

self.secondImage.image = [self.arrPage objectAtIndex:self.currentPage];

self.threeImage.image = [self.arrPage objectAtIndex:0];

}

else

{

self.firstImage.image = [self.arrPage objectAtIndex:self.currentPage - 1];

self.secondImage.image = [self.arrPage objectAtIndex:self.currentPage];

self.threeImage.image = [self.arrPage objectAtIndex:self.currentPage + 1];

}

self.firstImage.frame = CGRectMake(0, 0, WIDTH, HEIGHT);

self.secondImage.frame = CGRectMake(WIDTH, 0, WIDTH, HEIGHT);

self.threeImage.frame = CGRectMake(WIDTH * 2, 0, WIDTH, HEIGHT);

[self.myScorolV addSubview:self.firstImage];

[self.myScorolV addSubview:self.secondImage];

[self.myScorolV addSubview:self.threeImage];

self.myScorolV.contentOffset = CGPointMake(WIDTH, 0);

}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

int number = (int)self.myScorolV.contentOffset.x;

if (number < 0 || number == 0)

{

if (self.currentPage == 0)

{

self.currentPage = (int)(self.arrPage.count - 1);

}

else

{

self.currentPage--;

}

}

else if (number > WIDTH * 2 || number == WIDTH * 2)

{

if (self.currentPage == (int)self.arrPage.count - 1)

{

self.currentPage = 0;

}

else

{

self.currentPage++;

}

}

self.pageC.currentPage = self.currentPage;

[self relodeImage];

}

改良UIScrollView滚动视图的更多相关文章

  1. UIScrollView 滚动视图—IOS开发

    转自:http://blog.csdn.net/iukey/article/details/7319314 UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 CGRect  ...

  2. UIScrollView滚动视图

    一.基本知识 1.初始化 UIScrollView #import "ViewController.h" #define WIDTH[[UIScreen mainScreen]bo ...

  3. OCUI界面设计:滚动视图与分页控件初探

    滚动视图(UIScrollView) 简单介绍 1.UIScrollView滚动视图能够排列并显示超出自身显示范围的内容. 2.UIScrollView内部整合了多种手势来达到丰富的界面展示效果. 3 ...

  4. [转]IOS 学习笔记(8) 滚动视图(UIScrollView)的使用方法

    下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示: 通过这个例子,我们重点学习UIS ...

  5. Swift - 滚动视图(UIScrollView)的用法

    1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面. 1 2 3 4 5 6 var scrollView=UIScrollView() sc ...

  6. UIScrollView(滚动视图)

    (1)常用属性: 1)@property(nonatomic)CGPointcontentOffset; 这个属性⽤用来表⽰示UIScrollView滚动的位置 2)@property(nonatom ...

  7. iOS学习笔记——滚动视图(scrollView)

    滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性 @interface BoViewController : UIViewController<UIScro ...

  8. iOS关于菜单滚动视图实现

    菜单滚动视图也是在项目开发过程中比较常用到的功能,先直接看效果图 实现的效果如下: 当菜单个数的总长度超过一个屏宽度就计算每一个的文字宽度,若没有则只进行一个屏平分,点击菜单项时,滚动的视图位置会随着 ...

  9. swift:创建滚动视图的图片轮播器

    用swift创建图片轮播器和用OC创建的方式是一样的,都主要用到UIScrollView和UIImageview这两个控件,有几张图片,就将滚动视图的内容区域大小设置为每一张图片的大小乘以张数即可.然 ...

随机推荐

  1. 一键批量ping任意ip段的存活主机

    =======================by me===================================== @echo offecho.color FC for /f %%i ...

  2. MVC中的Startup.Auth.cs、BundleConfig.cs、FilterConfig.cs和RouteConfig.cs

    一.MVC中的Startup.Auth.cs.BundleConfig.cs.FilterConfig.cs和RouteConfig.cs四个文件在app_start中 <1>Bundle ...

  3. Django中url匹配规则的补充

    Django中url匹配规则是在urls.py文件中配置的. 1.关于正则匹配优先级 在url匹配列表中,如果第一条和第二条同时满足匹配规则,则优先匹配第一条. 在url匹配列表中,如果第一条为正则模 ...

  4. ElasticSearch(2)-文档

    上一篇 ES(1) 官网原地址:https://www.elastic.co/guide/en/elasticsearch/reference/1.7/_cluster_health.html ES权 ...

  5. JS 之完美运动框架

    完美运动框架是对原来的任意值运动框架的改善和效率的提升,即利用了json对属性进行封装,从而提高效率: window.onload=function(){ var oDiv=document.getE ...

  6. C#正则分组实例

    static void Main(string[] args) { string str = "大家家家家家家家明天天天天天天天天玩得得得得得得得开心"; Regex reg = ...

  7. angularjs表单

    <form ng-app="myApp" ng-controller="validateCtrl" name="myForm" nov ...

  8. maven入门(上)

    Apache Maven 入门篇 ( 上 ) 作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这 ...

  9. python基础(三)--列表、元组、字典

    一.列表: 有序序列,支持索引.切片.循环(for,while) 元素可以被修改: 元素可以是任何数据类型(数字,字符串,列表,布尔值...),可以嵌套: ##增 1.append(object)   ...

  10. 哈密顿圈~Lingo程序

    sets: c/1..15/:u; link(c,c):w,x; endsets data: w=@ole('第二题第一组.xls','d'); enddata n=@size(c); min=@su ...