#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. Vue.js 组件笔记

    Vue 组件总结笔记 一. 创建组件 1. 使用组件三部曲 ( 创建, 注册, 使用 ) 2. 全局组件:Vue.component('tag', {}); 3. 局部组件: components 属 ...

  2. 火狐中,设置align="center"失效的解决方法

    如下: <img align="center" style="vertical-align:top"></img> 只需要加上: ver ...

  3. webpack - tree shaking

    Tree-shaking with webpack 2 and Babel 6 babel-webpack-tree-shaking Ben Levwis

  4. openwrt 路由器变砖后修复方法

    https://wiki.openwrt.org/doc/howto/generic.debrick 变砖后需根据类型进行修复,主要有以下四种: (1)if only something on the ...

  5. art中的部分内容,留着慢慢研究

    root@hbg:/tmp# cat /proc/mtddev:    size   erasesize  namemtd0: 00040000 00010000 "u-boot" ...

  6. TortoiseGit - pull request

    有一个仓库,叫Repo A.你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,.然后你在这个A2下工作,Commit,push等.然后你希望原始仓库 ...

  7. amazeui tab 监听当前选项

    $('#contenttab').find('a').on('opened.tabs.amui', function(e) { if(e.target.pathname.indexOf("[ ...

  8. SqlParameter关于Like的传参数无效问题

    正确的写法(简洁版) private void GetHandleData(string strKeyWord1, string strKeyWord2, string strKeyWord3) { ...

  9. 接入支付宝出现交易订单处理失败,请稍后再试(ALI64)的错误【转】

    接入第三方平台的时候,有时虽然按照文档来做,但是总是还会有各种各样的问题. 上次在接入支付宝的时候就碰到了交易订单处理失败,请稍后再试(ALI64)这样的错误,后来经过排查和总结,一般来讲这种问题都是 ...

  10. iOS使用Swift语言检查并提示更新

    项目要上线了,产品要求跟安卓一样,一进去有一个提示框提示更新.虽然苹果在 Settings/iTunes Store & App Store 选项中有自动更新这一选项,而且添加版本号等等有被拒 ...