图片轮播
分析
1.UI:
初始化scrollView;将图片添加到删除rollview中,因为图片数量未知,通过代码添加,图片较多张时,代码添加比较方便;设置scrollview属性;添加UIPageControl
2.业务
2.1 要在scrollview中实现拖动分页,要设置scrollView.pagingEnabled
为YES
;
2.2 实现图片拖动切换页面,变换pagecontrol
2.2.1 要实现拖动分页,要给控制器添加scrollviewdelegate,在代理的scrollViewDidScroll
方法中设置scrollview的contentOffset属性来实现图片的切换。
2.2.2 要改变UIPageControl
的currentPage
值,需要通过scrollview的contentOffset及scrollview的width来计算:currentPage=(contentOffset.x + .5f * width) / width
,加上.5f * width
是为了实现图片拖动超过scrollview宽度的一半时,更改pagecontrol的属性
2.3 实现自动轮播
2.3.1 添加timer,将timer添加到[[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]
- (void)nextPage
{
if (self.pageCtl.currentPage == (kImageCount - 1)) {
self.pageCtl.currentPage = 0;
} else {
self.pageCtl.currentPage++;
}
CGFloat width = self.scrollView.bounds.size.width;
[UIView animateWithDuration:1.0 animations:nil completion:^(BOOL finished) {
self.scrollView.contentOffset = CGPointMake(self.pageCtl.currentPage * width, 0);
}];
}
2.3.2 当用户开始拖动图片的时候,要移除timer,结束拖动时,重新设置timer