#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. IIS7或IIS7.5 ISAPI和CGI限制找不到的问题记录

    弄了一下午,才找到,选择最上面的节点,如下图,记录备用

  2. HDU2363 最短路+贪心

    Cycling Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  3. String类之indexOf--->查找某字对应的位置

    以下方法都是java内置类String类的内置方法(不是构造方法哦,就是普通的方法),不需要我们写,直接拿过来用即可. indexOf方法对应Api介绍 lastIndexOf方法对应Api介绍 -- ...

  4. Node.js:服务器与数据流

    1.Node 常被用来构建服务器,下面代码就是创建了一个服务器. var http = require('http'); var server = http.createServer(); serve ...

  5. YII学习第二十三天,accessRules用法

    访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类 ...

  6. Udemy - Angular 2 - The Complete Guide 笔记

    1. install > npm install -g angular-cli 2. create app > ng new first-app 3. build app > cd ...

  7. Openjudge-计算概论(A)-求满足条件的3位数

    描述: 编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为: 1.该数为完全平方数 2.该数至少有2位数字相同 例如,100同时满足上面两个条件. 输入输入一个数n,n的大小不超过实 ...

  8. tomcat的事件监听

    //事件涉及的三个组件:事件源.事件对象.事件监听器 //一个总的事件监听器接口,所有不同分类的事件监听器都继承这个接口 public interface EventListener {} //例如  ...

  9. Prime Path(BFS)

    Prime Path Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total S ...

  10. ios的虚拟键盘与fixed移动端的bug

    //$('#search')表单input;$('.search_out')浮动元素 var u = navigator.userAgent, app = navigator.appVersion;v ...