您的位置:首页 > 产品设计 > UI/UE

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: