ScrollView 之 实现视图的循环显示
来源:互联网 发布:java编程思想 pdf 下载 编辑:程序博客网 时间:2024/05/19 23:53
视图的循环现实一般采用的是412341的方法,先面试例子
#import "ViewController.h"#define imageWidth 300#define imageHeight 450@interface ViewController ()<UIScrollViewDelegate>{ NSArray * _sourceArray; UIScrollView * _scrollView; UIPageControl * _pageControl;}@end@implementation ViewController-(void)loadView{ [super loadView]; }- (void)viewDidLoad{ [super viewDidLoad]; _sourceArray = [NSArray arrayWithObjects:@"A.png",@"B.png",@"C.png",@"E.png", @"F.png",@"G.png",@"H.png",@"I.png",@"J.png",@"K.png",@"L.png",@"M.png",nil]; _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(10, 20, imageWidth, imageHeight)]; _scrollView.delegate = self; _scrollView.pagingEnabled = YES; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.contentSize = CGSizeMake(imageWidth*([_sourceArray count]+2), imageHeight); [self.view addSubview:_scrollView]; UIImageView * firstImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, imageWidth, imageHeight)]; firstImage.image = [UIImage imageNamed:[_sourceArray lastObject]]; [_scrollView addSubview:firstImage]; for (int i = 1; i <= [_sourceArray count]; i++) { UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i*imageWidth, 0, imageWidth, imageHeight)]; imageView.image = [UIImage imageNamed:[_sourceArray objectAtIndex:i - 1]]; [_scrollView addSubview:imageView]; } UIImageView * lastImage = [[UIImageView alloc]initWithFrame:CGRectMake(([_sourceArray count]+1)*imageWidth, 0, imageWidth, imageHeight)]; lastImage.image = [UIImage imageNamed:[_sourceArray objectAtIndex:0]]; [_scrollView addSubview:lastImage]; [_scrollView scrollRectToVisible:CGRectMake(imageWidth, 0, imageWidth, imageHeight) animated:NO]; _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, _scrollView.frame.origin.y + _scrollView.frame.size.height - 20, imageWidth, 20)]; _pageControl.numberOfPages = _sourceArray.count; _pageControl.currentPage = 0; _pageControl.enabled = YES; [self.view addSubview:_pageControl];}-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ int currentPage = scrollView.contentOffset.x/imageWidth; if (currentPage == [_sourceArray count]+1) { [_scrollView scrollRectToVisible:CGRectMake(imageWidth, 0, imageWidth, imageHeight) animated:NO]; _pageControl.currentPage = 0; }else if (currentPage == 0){ [_scrollView scrollRectToVisible:CGRectMake(imageWidth*([_sourceArray count]), 0, imageWidth, imageHeight) animated:NO]; _pageControl.currentPage = _sourceArray.count - 1; }else{ _pageControl.currentPage = currentPage - 1; }}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
上面就是实现的所有代码,主要就是用到了scrollview的一个代理方法,和scrollview的一个scrollRectToVisible:方法。
0 0
- ScrollView 之 实现视图的循环显示
- Android之重写ScrollView实现两个ScrollView的同步滚动显示
- Android之重写ScrollView实现两个ScrollView的同步滚动显示
- UI之UIScrollView实现循环滚动视图
- 无限循环的ScrollView,原理以及实现,自动循环!!!
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 【android之ScrollView滚动视图】
- ScrollView无限循环实现思路
- 用3个label实现scrollView的循环滚动效果
- express3.x_02之使用视图模板(能实现列表的遍历,不用写for循环)
- iOS开发之自定义视图上下无限循环滚动实现
- scrollView实现无缝链接滚动视图
- scrollView滚动视图实现商城模块
- scrollview的无缝循环滚动
- 弹性ScrollView下拉弹性显示底部内容的简单实现
- Chapter06-FatMouse‘s Speed(ZOJ 1108)
- Python休眠、随机数
- 用PHP实现守护进程任务后台运行与多线程(php-resque使用说明)
- hdu1325 Is It A Tree?并查集
- FFmpeg SDK使用实例apiexample的分析
- ScrollView 之 实现视图的循环显示
- C++ vector::push_back 用法剖析
- 演练:ASP.NET控件实现 创建具有成员资格和用户登录功能的网站
- iOS网络编程(二) 自定义请求网络类----推荐用于需要请求过程片段数据
- VS2010 动态库开发演练:创建和使用动态链接库 (C++)(
- hdu 1863 畅通工程
- Java可变参数
- IMPORT command using the ADMIN_CMD procedure
- JavaWeb基础(复习1)