码迷,mamicode.com
首页 > 移动开发 > 详细

3、iOS 开发之 UIScrollView UIPageController NSTimer

时间:2015-08-29 06:20:53      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:uiscrollview

一、UIScrollView属性

1.常见的属性

// 移动的位置
@property(nonatomic) CGPoint contentOffset;
// 内容的大小
@property(nonatomic) CGSize contentSize;
// 四边扩展的边距
@property(nonatomic) UIEdgeInsets contentInset;

2.其他属性

// 弹簧效果
@property(nonatomic) BOOL bounces;
// 是否能滚动
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
// 是否隐藏水平滚动条
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
// 是否隐藏垂直滚动条
@property(nonatomic) BOOL showsVerticalScrollIndicator;

3.UIScrollView的基本使用

1> 将需要展示的内容添加到UIScrollView2> 设置UIScrollViewcontentSize属性

4.UIScrollView不能滚动的原因

1> 没有设置UIScrollViewcontentSize
2> scrollEnabled = NO;
3> 没有接收到触摸事件 userInterfaceEnabled = NO
4> 没有取消autolayout功能

二、UIScrollView的代理

  • UIScrollView中有一个属性是delegate目的是监听整个滚动过程,当发生滚动时会通知它的代理对象来执行相应的操作

1.成为代理的必要条件

1> 遵守UIScrollViewDelegate协议
2> 设置代理的对象
* 用代码实现: self.scrollview.delegate = self;
* 通过SB拖线

2.拖拽滚动的代理的方法

// 用户开始拖拽时调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
// 滚动到某个位置时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 用户结束拖拽时调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

3.缩放的代理方法

// 返回需要缩放的视图控件
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
// 准备开始缩放的调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
// 正在缩放的时候调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView

1> 缩放实现步骤

* 设置代理对象
* 设置minimumZoomScale:缩放的最小比例
* 设置maxmumZoomScale:放大的最大比例
* 实现代理的方法

三、UIPageControl的分页

  • 分页:实现类似图片轮播器的效果
    前提:要将UIScrollView的pageEnabled属性设置为YES,为了增强分页效果,配合使用UIPageControl

1.常见的属性

// 总页数
@property(nonatomic) NSInteger numberOfPages;
// 当前页
@property(nonatomic) NSInteger currentPage;
// 当有一页时,是否隐藏页码指示器
@property(nonatomic) BOOL hidesForSinglePage;
// 其他页码指示器的颜色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;
// 当前页码指示器的颜色
@property(nonatomic,retain) UIColor *currentPageIndicatorTintColor;

2.监听方法

[_pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];

四、NSTimer的使用

作用:指定时间执行指定的任务,每隔一段时间执行指定的任务

1.开启一个定时任务

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget
selector:(SEL)aSelector
userInfo:(id)userInfo
repeats:(BOOL)yesOrNo;
// 每隔ti秒,调用一次aTarget的aSelector方法,yesOrNo决定了是否重复执行这个方法

2.取消任务

- (void)invalidate;
// 一旦定时器被停止了,就不能重现开启了,只能再创造一个定时器

3.将定时器添加到运行循环中

[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
  • 运行循环有两种模式:
默认的运行循环模式:NSDefaultRunLoopMode
监听滚动模式:NSRunLoopCommonModes

版权声明:本文为博主原创文章,未经博主允许不得转载。

3、iOS 开发之 UIScrollView UIPageController NSTimer

标签:uiscrollview

原文地址:http://blog.csdn.net/wangbo_neuq/article/details/48081245

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!