1.UIScrollView是一个能够滚动的视图控件,可以⽤用来展⽰示⼤大量的内容,并且可以通过滚动查看所有的内容


2.UIScrollView的简单使用

(1)将需要展⽰的内容添加到UIScrollView中

(2)设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺⼨寸,也就是告诉 它滚动的范围(能滚多远,滚到哪⾥里是尽头)


3.属性

(1)常用属性:

1)@property(nonatomic)CGPoint contentOffset; 这个属性⽤用来表⽰示UIScrollView滚动的位置

2)@property(nonatomic)CGSize contentSize;这个属性⽤用来表⽰示UIScrollView内容的尺⼨寸,滚动范围(能滚多远)

3)@property(nonatomic)UIEdgeInsets contentInset; 这个属性能够在UIScrollView的4周增加额外的滚动区域

(2)其他属性:

1)@property(nonatomic) BOOL bounces; 设置UIScrollView是否需要弹簧效果

2)@property(nonatomic,getter=isScrollEnabled)BOOL scrollEnabled; 设置UIScrollView是否能滚动

3)@property(nonatomic) BOOL showsHorizontalScrollIndicator; 是否显⽰示⽔水平滚动条

4)@property(nonatomic) BOOL showsVerticalScrollIndicator; 是否显⽰示垂直滚动条


4.几个属性坐标示意图


uiscrollview touchesBegan 無效 ios uiscrollview_拖拽


contentoffset是个CGpoint类型的结构体,用来记录ScrollView的滚动位置,即记录着“框”跑到了哪里。知道了这个属性,就知道了其位置,可以通过设置这个属性来控制这个“框”的移动。

UIScrollView的frame与contentsize属性的区分:UIScrollView的frame指的是这个scrollview的可视范围(可看见的区域),contentsize是其滚动范围。


5 .UIScrollView的代理

在很多时候我们需要知道UIScrollView滚动到了那里,它是否停止,那些时候来做一些特定的操作,要想完成那些特定的动作进行时的功能,前提就是能够监听到UIScrollView整个滚动的过程
要想监听整个UIScrollView的滚动过程,就必须给它设置一个代理对象,通过代理得知UIScrollView的滚动过程

UIScrollView和delegate的通信

UIScrollView和delegate的通信应该如下表:

手势

方法

开始拖拽

scrollViewWillBeginDragging:

具体到某个位置

scrollViewDidScroll:

用户停止拖拽

scrollViewDidEndDragging:willDecelerate:

UIScrollView需要实现的方法都定义在UIScrollViewDelegate协议中,遵守协议后,实现协议中的方法就可以监听UIScrollView的滚动过程


6.分页

只要将UIScrollView的pageEnable属性设置为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;