【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例
【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例
第一:UIScrollView的常用属性
//表示UIScrollView内容的尺寸,滚动范围
@property(nonatomic) CGSize contentSize;
//在UIScrollView的4周增加额外的滚动区域
@property(nonatomic) UIEdgeInsets contentInset;
//表示UIScrollView滚动的位置(以内容为起点),一开始的滚动位置
@property(nonatomic) CGPoint contentOffset;
//设置带有动画的滚动
[self.scrollView setContentOffset:offset animated:YES];
第二:UIScrollView的常用方法
// 用户开始拖拽时调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
// 滚动到某个位置时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 用户结束拖拽时调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
实例一:scrollView实现捏合(缩放)的效果
self.scrollView.delegate = self;
// 设置最大和最小的缩放比例
self.scrollView.maximumZoomScale = 2.0;
self.scrollView.minimumZoomScale = 0.2;
/**
* 当用户使用捏合手势的时候会调用,实现
*
* @return 返回的控件就是需要进行缩放的控件
*/
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.minionView;
}
实例二:实现常见的图片播放效果
源码下载:https://github.com/darren90/UIScrollView-UIPageControl
思路:可以把要显示的图片拼接起来,放到scrollview中,同时设置scrollview的contentSize的X值(水平方向滚动)为图片的总宽度,这样就好了。
scrollview这样畸形设置
scrollView.contentSize = CGSizeMake(scrollViewW*numImageCount, 0);
scrollView.contentInset = UIEdgeInsetsMake(0, 20, 0, 20);
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.delegate = self;
scrollView.pagingEnabled = YES;
实现scrollview的代理方式
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat scrollW = scrollView.frame.size.width;
CGFloat width = scrollView.contentOffset.x;
int page = (width + scrollW * 0.5) / scrollW;
self.pageControl.currentPage = page;
}
注:详细的实现可参考源码。
附:NSTimer的介绍:
两种定时器:
1:NSTimer:时间间隔大
2:CADisplayLink:时间间隔小
获取定时器:
第一:需要调用fire方法才可以走得定时器:
timerWithTimeInterval
timerWithTimeInterval
第二:会自动走的定时器:
scheduledTimerWithTimeInterval
停止定时器
ivaladate
把timer添加到主线程:
//默认没有优先级
//extern NSString* const NSDefaultRunLoopMode;
//提高优先级
//extern NSString* const NSRunLoopCommonModes;
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
作者:Darren
微博:@IT_攻城师
github:@Darren90
博客:http://www.cnblogs.com/fengtengfei/
欢迎您的访问...