在前面我们学会了如何给UIScrollView的单图分页, 下面让我们来看看, 如何给UIScrollView多图分页.
1.设置代理以及设置全局变量
.h文件
#import <UIKit/UIKit.h> @interface ViewController : UIViewController <UIScrollViewDelegate> @end
.m文件
@interface ViewController () { UIScrollView *_scrollView; UIPageControl *_pageControl; } @end
2.实例化UIScrollView
- (void)myScrollView { // 1.实例化UIScrollView _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 28, self.view.frame.size.width, self.view.frame.size.height)]; CGFloat width = _scrollView.bounds.size.width; CGFloat height = _scrollView.bounds.size.height; // 2.添加Image内容 for (NSUInteger i = 1; i <= 5; i++) { NSString *imageFile = [NSString stringWithFormat:@"%ld.jpg", i]; UIImage *image = [UIImage imageNamed:imageFile]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; [imageView setFrame:CGRectMake((i - 1) * width, 0, width, height)]; [_scrollView addSubview:imageView]; } [_scrollView setBounces:NO]; [_scrollView setShowsHorizontalScrollIndicator:NO]; [_scrollView setContentSize:CGSizeMake(5 * width, height)]; [_scrollView setPagingEnabled:YES]; [self.view addSubview:_scrollView]; [_scrollView setDelegate:self]; }
3.添加UIScrollView的代理方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { CGFloat pageNo = scrollView.contentOffset.x / scrollView.bounds.size.width; [_pageControl setCurrentPage:pageNo]; }
4.添加UIPageControl
- (void)myPageControl { _pageControl = [[UIPageControl alloc] init]; [_pageControl setBounds:CGRectMake(0, 0, 150, 50)]; [_pageControl setCenter:CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height - 50)]; [_pageControl setNumberOfPages:5]; [_pageControl setCurrentPage:0]; [_pageControl setCurrentPageIndicatorTintColor:[UIColor redColor]]; [_pageControl setPageIndicatorTintColor:[UIColor greenColor]]; [_pageControl addTarget:self action:@selector(updatePageChanged:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:_pageControl]; }
5.添加UIPageControl的坚挺方法
- (void)updatePageChanged:(UIPageControl *)pageControl { CGFloat offsetX = pageControl.currentPage * _scrollView.bounds.size.width; [_scrollView setContentOffset:CGPointMake(offsetX, 0) animated:YES]; }
6.最后把所有方法都实现
- (void)viewDidLoad { [super viewDidLoad]; [self myScrollView]; [self myPageControl]; }
下面让我们来看看最终效果:
好了, 这次我们就讲到这里, 下次我们继续~~~