(5.19)scrollview的分页滚动
#import "mainController.h"
@interface mainController ()
//分页控件
@property(nonatomic,weak)UIPageControl *pageController;
//滚动视图
@property(nonatomic,weak)UIScrollView *scrollder;
@end
@implementation mainController
//开发步骤
//1,搭建ui界面,建立scrollview
//2,增加分页功能
//3,添加分页控件
-(void)loadView{
//1,实例化视图view
self.view = [[UIView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];
//2,创建滚动视图
UIScrollView *scroll = [[UIScrollView alloc]initWithFrame:self.view.bounds];
//3,将scroll加载到当前视图
[self.view addSubview:scroll];
//4,初始化数据
NSMutableArray *array = [[NSMutableArray alloc]initWithCapacity:5];
for (NSInteger i = 0; i < 5; i++) {
//创建图片的文件名
NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i+1];
//建立图像视图
UIImage *images = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc]initWithImage:images];
//将视图添加到数组
[array addObject:imageView];
CGFloat width = scroll.bounds.size.width;
//将建立好的数组添加到scrollView
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//1,从数组中取出imageView
UIImageView *imageView = obj;
//2,设置图像视图的frame
[imageView setFrame:CGRectMake(width * idx, 0, width, scroll.bounds.size.height)];
//3,将图像视图添加到scroller
[scroll addSubview:imageView];
}];
//设置滚动视图属性
//1,设置滚动区域
[scroll setContentSize:CGSizeMake(scroll.bounds.size.width * 5, scroll.bounds.size.width)];
//2,允许分页
[scroll setPagingEnabled:YES];
//3,关闭弹簧效果
[scroll setBounces:NO];
//4,关闭水平滚动条
[scroll setShowsHorizontalScrollIndicator:NO];
//设置滚动视图代理
[scroll setDelegate:self];
//添加分页控件
UIPageControl *pageControl = [[UIPageControl alloc]init];
//根据指定的页数,返回分页控件的大小
CGSize size = [pageControl sizeForNumberOfPages:5];
[pageControl setFrame:CGRectMake(0, 0, size.width, size.height)];
//设置分页控件的位子
[pageControl setCenter:CGPointMake(width / 2 , 400)];
//设置分页控件的页数
[pageControl setNumberOfPages:5];
[pageControl setCurrentPage:0];
//设置分页控件的颜色
[pageControl setCurrentPageIndicatorTintColor:[UIColor redColor]];
[pageControl setPageIndicatorTintColor:[UIColor blackColor]];
//添加到视图
[self.view addSubview:pageControl];
self.pageController =pageControl;
self.scrollder = scroll;
//添加分页空间的监听方法
[pageControl addTarget:self action:@selector(pageChange:) forControlEvents:UIControlEventValueChanged];
}
}
#pragma mark - uiscrollview代理方法
#pragma mark 滚动停止事件
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"滚动停止");
//根据scrollview的方法,判断页数
NSInteger pageNo = scrollView.contentOffset.x / scrollView.bounds.size.width;
[self.pageController setCurrentPage:pageNo];
}
#pragma 设置分页控件的监听方法
-(void)pageChange:(UIPageControl *)sender{
NSLog(@"分页控件被点击");
//判断当前的控件数
CGFloat offsetX = sender.currentPage * self.scrollder.bounds.size.width;
[self.scrollder setContentOffset:CGPointMake(offsetX, 0) animated:YES];
}
@end
浙公网安备 33010602011771号