最近MOMO需要搞一个IOS软件的项目,搞了几天感觉还不错,进度挺快的,哇咔咔。Unity3D游戏开发暂时先告一段落,这段时间写一些IOS软件相关的东东,也算是给工作的一个总结。好啦现学现卖啦!!HOHO~~
UIScrollView在软件开发中是很常见的控件,总体来说ScrollView又可以分为两种:第一种是根据手指滑动的力度计算滚动的距离。第二种时以页面为单位一次滑动切换一页,这和IOS桌面左右滑动类似。 有了IOS提供的UIScrollView控件实现这些都不是什么难事。如下图所示,MOMO一共给页面中加载了5个View,通过手指左右滑动喔。
不知道说什么,直接上代码吧。
009 | #import "ScrollViewController.h" |
011 | @interface ScrollViewController () |
015 | @implementation ScrollViewController |
017 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil |
019 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; |
033 | _scrollView = [[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320,440)] autorelease]; |
038 | [_scrollView setContentSize:CGSizeMake(320 * 5, 240)]; |
041 | [_scrollView setPagingEnabled:YES]; |
044 | [_scrollView setShowsVerticalScrollIndicator:NO]; |
045 | [_scrollView setShowsHorizontalScrollIndicator:NO]; |
048 | [_scrollView setDelegate:self]; |
056 | for ( int i =0; i<5; i++) |
060 | UIImageView *imageView= [[[UIImageView alloc] initWithFrame:CGRectMake(i * 320,0,320,440)] autorelease]; |
061 | [imageView setImage:[UIImage imageNamed:@ "image.png" ]]; |
063 | UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; |
064 | button.frame = CGRectMake(i * 320, 10, 100, 30); |
066 | [button setTitle:@ "这是一个按钮" forState:UIControlStateNormal]; |
068 | [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside]; |
071 | [_scrollView addSubview:imageView]; |
072 | [_scrollView addSubview:button]; |
076 | [self.view addSubview:_scrollView]; |
080 | _pageControl = [[[UIPageControl alloc] initWithFrame:CGRectMake(0, 440,self.view.frame.size.width, 20)]autorelease]; |
082 | [_pageControl setNumberOfPages:5]; |
084 | [_pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged]; |
085 | [self.view addSubview:_pageControl]; |
089 | - ( void )changePage:(id)sender |
099 | - ( void )scrollViewDidEndDecelerating:(UIScrollView *)scrollView |
102 | NSLog(@ "结束滚动后缓冲滚动彻底结束时调用" ); |
105 | -( void ) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView |
108 | NSLog(@ "结束滚动后开始缓冲滚动时调用" ); |
111 | -( void )scrollViewDidScroll:(UIScrollView*)scrollView |
115 | [_pageControl setCurrentPage: fabs (scrollView.contentOffset.x/self.view.frame.size.width)]; |
116 | NSLog(@ "视图滚动中X轴坐标%f" ,scrollView.contentOffset.x); |
117 | NSLog(@ "视图滚动中X轴坐标%f" ,scrollView.contentOffset.y); |
120 | -( void )scrollViewWillBeginDragging:(UIScrollView*)scrollView |
122 | NSLog(@ "滚动视图开始滚动,它只调用一次" ); |
125 | -( void )scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:( BOOL )decelerate |
127 | NSLog(@ "滚动视图结束滚动,它只调用一次" ); |
137 | - ( void )viewDidUnload |
139 | [super viewDidUnload]; |
142 | - ( BOOL )shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation |
144 | return (interfaceOrientation == UIInterfaceOrientationPortrait); |
后天就要坐上火车去成都了,然后去九寨沟旅游啦。希望这是一趟美好的旅途,一周后北京再见!!
源码下载地址:http://vdisk.weibo.com/s/b4W2a