UIScrollView

1 篇文章 0 订阅
1 篇文章 0 订阅

一、UIScrollView的基本使用
UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有内容。
UIScrollView的用法很简单:1、将需要展示的内容添加到UIScrollView中;2、设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是说它的滚动范围。
如果UIScrollView无法滚动,可能是以下原因:
1>没有设置contentSize
2>scrollEnabled = NO;
3>没有接受到触摸事件:userInteractionEnabled = NO
4>没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)

二、UIScrollView的常用代理方法
1、UIScrollView的代理
1>很多时候,我们想在UIScrollView正在滚动或者滚动到某个位置 或 停止滚动时做一些特定的操作
2>要想完成上述功能,前提条件是能够监听UIScrollView的滚动
3>当UIScrollView发生滚动时会自动通知它的代理对象,给它的代理对象发送相应的消息,让它的代理得知它的滚动情况。
4>也就是说,要想监听UIScrollView的滚动过程,就必须给UIScrollView设置一个代理,然后通过代理得知UIScrollView的滚动过程

2、成为UIScrollView的delegate的条件
1>遵守UIScrollViewDelegate协议
2>设置UIScrollView的delegate
两种方式:
2.1> 通过代理
self.scrollView.delegate = self;
2.2>通过stroryboard连线
3> 实现协议中定义的相关方法

三、UIScrollView常见属性

//UIScrollView的滚动位置
@property (nonatomic) CGPoint contentOffset;
//UIScrollView内容的尺寸,滚动范围
@property (nonatomic) CGSize contentSize;
//在四周增加额外的滚动区域
@property (nonatomic) UIEdgeInsets contentInset;

//是否需要弹簧效果
@property (nonatomic) BOOL bounces;
//是否能滚动
@property (nonatomic, getter = isScrollEnabled) BOOL scrollEnabled;
//是否显示水平滚动条
@property (nonatomic) BOOL showHorizontalScrollIndicator;
//是否显示垂直滚动条
@property (nonatomic) BOOL showVerticalScrollIndicator;

四、UIScrollView代理方法

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

三、UIScrollView的缩放
UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理。
UIScrollView缩放原理:
1、当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容)。
2、然后UIScrollView会调用代理的viewForZoomingInScrollView: 方法,这个方法返回的控件就是需要进行缩放的控件。
缩放实现的具体步骤:
1、设置UIScrollView的”iddelegate” 代理对象
2、设置minimumZoomScale: 缩小的最小比例
3、设置maxmumZoomScale: 放大的最大比例
4、让代理对象实现下面的方法,返回需要缩放的视图控件

- (UIView *) viewForZoomingInScrollView: (UIScrollView *)scrollView; 
跟缩放相关的其他代理方法
//缩放完毕的时候调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollViewWithView:(UIView *)view
//正在缩放的时候调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView;

四、UIScrollView 和 UIPageControl的分页
只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示
一般会配合UIPageControl 增强分页效果,UIPageControl常用属性如下

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

五、NSTimer的使用
作用:1>在指定的时间完成指定的任务‘
2> 每隔一段时间执行特定的任务
调用下面的方法就会开启一个定时器任务

//每隔ti秒调用一次aTarget的aSelector方法,yesOrNo决定了是否重复执行这个任务
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
//停止定时器的工作;一旦定时器停止了,就不能再次执行任务。智能再创建一个新的定时器才能执行新的任务
- (void)invalidate;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值