UIScrollView和UIPageControl结合
2015-09-07 22:16
561 查看
//创建一个滚动视图
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds ];
[self addSubview:scrollView];
[self addSubview:scrollView];
self.scrollView = scrollView;
scrollView.backgroundColor = [UIColor cyanColor];
//创建多个图片
int count = 3;
for (int i = 0; i < count; i++) {
//设置每个imageView的frame
CGRect frame= CGRectMake(self.frame.size.width*i,0,self.frame.size.width, self.frame.size.height);
//创建一个图片对象
NSString *name = [NSString stringWithFormat:@"shuang_%d.jpg",i];
UIImage *image = [UIImage imageNamed:name];
//创建一个图片视图,放置图片对象
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
//设置图片视图的frame
imageView.frame = frame;
//将多个图片对象添加到图片视图上
[_scrollView addSubview:imageView];
}
//设置整屏翻页
_scrollView.pagingEnabled = YES;
//(一定要设置)设置内容大小
_scrollView.contentSize = CGSizeMake(self.frame.size.width*count, self.frame.size.height);
//添加上小点点
self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, self.frame.size.height-40, self.frame.size.width,40)];
[self addSubview:_pageControl];
//设置点点的个数
_pageControl.numberOfPages = count;
_pageControl.backgroundColor = [UIColor blueColor];
//给小点点定义点击事件
-(void)pageControlAction:(UIPageControl *)sender{
//可以通过currentPage获取当前第几个点
NSLog(@"%ld",sender.currentPage);
//计算出偏移量scrollView.frame.size.width*sender.currentPage
CGPoint currentOffset = CGPointMake(self.rootView.scrollView.frame.size.width*sender.currentPage, 0);
//self.rootView.scrollView.contentOffset = currentOffset;
//将偏移量赋值给scrollView.contentOffset = offset
[self.rootView.scrollView setContentOffset:currentOffset animated:YES];
}
//滚动过程中
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"开始滚动");
}
//开始拖动
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
// NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"开始拖动");
}
//结束拖动时执行
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"%d,%s",__LINE__,__FUNCTION__);
}
//开始减速
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"开始减速");
}
//结束:当视图完全停止的时候执行(减速结束)
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"结束");
//获得当前的偏移量
CGPoint offset = scrollView.contentOffset;
//使用偏移量/scrollView的宽度,得到当前的页数的下标
self.rootView.pageControl.currentPage = offset.x/self.rootView.frame.size.width;
}
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds ];
[self addSubview:scrollView];
[self addSubview:scrollView];
self.scrollView = scrollView;
scrollView.backgroundColor = [UIColor cyanColor];
//创建多个图片
int count = 3;
for (int i = 0; i < count; i++) {
//设置每个imageView的frame
CGRect frame= CGRectMake(self.frame.size.width*i,0,self.frame.size.width, self.frame.size.height);
//创建一个图片对象
NSString *name = [NSString stringWithFormat:@"shuang_%d.jpg",i];
UIImage *image = [UIImage imageNamed:name];
//创建一个图片视图,放置图片对象
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
//设置图片视图的frame
imageView.frame = frame;
//将多个图片对象添加到图片视图上
[_scrollView addSubview:imageView];
}
//设置整屏翻页
_scrollView.pagingEnabled = YES;
//(一定要设置)设置内容大小
_scrollView.contentSize = CGSizeMake(self.frame.size.width*count, self.frame.size.height);
//添加上小点点
self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, self.frame.size.height-40, self.frame.size.width,40)];
[self addSubview:_pageControl];
//设置点点的个数
_pageControl.numberOfPages = count;
_pageControl.backgroundColor = [UIColor blueColor];
//给小点点定义点击事件
-(void)pageControlAction:(UIPageControl *)sender{
//可以通过currentPage获取当前第几个点
NSLog(@"%ld",sender.currentPage);
//计算出偏移量scrollView.frame.size.width*sender.currentPage
CGPoint currentOffset = CGPointMake(self.rootView.scrollView.frame.size.width*sender.currentPage, 0);
//self.rootView.scrollView.contentOffset = currentOffset;
//将偏移量赋值给scrollView.contentOffset = offset
[self.rootView.scrollView setContentOffset:currentOffset animated:YES];
}
//滚动过程中
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"开始滚动");
}
//开始拖动
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
// NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"开始拖动");
}
//结束拖动时执行
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"%d,%s",__LINE__,__FUNCTION__);
}
//开始减速
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"开始减速");
}
//结束:当视图完全停止的时候执行(减速结束)
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"%d,%s",__LINE__,__FUNCTION__);
NSLog(@"结束");
//获得当前的偏移量
CGPoint offset = scrollView.contentOffset;
//使用偏移量/scrollView的宽度,得到当前的页数的下标
self.rootView.pageControl.currentPage = offset.x/self.rootView.frame.size.width;
}
相关文章推荐
- UIScrollView的缩放
- UI 设计 绘图(涂鸦)
- 内核工作队列workqueue
- 搭建go开发环境时,出现GoSublime error: MarGo build failed的问题
- POJ3368--Frequent values
- ContentValues、HashTable、HashMap异同
- 黑马程序员-OC基础之NSValue的使用
- EasyUI -datagrid分页后台查询
- ByBueredStream
- [APUE] 再读之进程关系
- 在现实编程中使用fluent风格
- POJ 1947 Rebuilding Roads
- 《APUE》读书笔记—进程控制
- 禁止Ubuntu开机进入guest session
- unique函数
- LeetCode(60) Permutation Sequence
- LeetCode(60) Permutation Sequence
- Codeforces 156D Clues (图论, 并查集, 卡特兰数)
- UISearchBar的基本用法
- easyui 布局