UIScrollView
- 基本的屬性
//這個屬性用來表示UIScrollView滾動的位置戳稽、其實就是內(nèi)容左上角與scrollView左上角的間距值)
@property(nonatomic) CGPoint contentOffset;
//這個屬性用來表示UIScrollView內(nèi)容的尺寸蝙昙,滾動范圍(能滾多遠)
@property(nonatomic) CGSize contentSize;
//這個屬性能夠在UIScrollView的4周增加額外的滾動區(qū)域疏之,一般用來避免scrollView的內(nèi)容被其他控件擋住
@property(nonatomic) UIEdgeInsets contentInset;
- 常用的屬性
//設置UIScrollView是否需要彈簧效果
@property(nonatomic) BOOL bounces;
//設置UIScrollView是否能滾動
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
//是否顯示水平滾動條
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
//是否顯示垂直滾動條
@property(nonatomic) BOOL showsVerticalScrollIndicator;
- 各個屬性的圖解
Scrollview的重要屬性
contentSize
: 顯示的尺寸假如
scrollView
的frame.size
是100x100况褪,那么在contentSize
的width
和height
設置的數(shù)值小于frame.size
的寬和高的時候是不能滑動的丹鸿,因為scrollView
的frame
已經(jīng)能夠顯示它內(nèi)部的內(nèi)容,必須要設置比frame.size
的寬高大展东,假如設置為150x150蜒滩,那么它以后能夠展示的區(qū)域就是150x150不設置
contentSize
不能滾動的原因:因為默認是contentSize = CGSizeMake(0,0);
所以水平和垂直方向上都不能滾動scrollView
滾動是里面的view
在滾動,在frame.size
內(nèi)滾動contentOffSet
: 滾動的偏移量scrollView
的基本原理 :scrollView
的滑動顯示主要依靠一個顯示的窗口和內(nèi)部用于盛放子控件的view
得滤,拖拽view在窗口中顯示偏移量 :
contentOffSet
是在拖拽view
的過程中計算出view的左上角的坐標和窗口的左上角的坐標之差陨献,從而知道scrollView
內(nèi)部的view
已經(jīng)滾動到哪里了一開始的時候
contentOffSet
的值是(0,0)
懂更,所以view
的左上角和窗口的左上角是重合的contentOffSet
指的是view
的左上角和窗口的左上角之差眨业,并不是view的外部擴展的區(qū)域和窗口左上角之差,但是調(diào)節(jié)contentOffSet
的時候整個后面的view
和擴展的部分都會移動(個人認為基本沒什么區(qū)別)偏移量的正負 : 在
view
的拖拽過程中沮协,如果是向左/上拖拽的偏移量為正龄捡,否則為負,如果是往右/下拖拽的為負(一個是往窗口的外部擴展慷暂、一個是往窗口的內(nèi)部縮進)contentInset
: 外邊距contentInset
為scrollView
的view
增加了周圍的額外的滾動距離聘殖,這樣的好處是在窗口的一小部分被遮蓋了的時候使用這個屬性為這個方向向外擴展一段距離,然后再調(diào)整偏移量就ok
。這樣就可以看到全部的內(nèi)容了
Scrollview的應用
控件懸停和下拉放大
- 控件懸停:監(jiān)聽scrollView的滑動到一定的值將控件移動到其他的view奸腺,反之再次移動到scrollView上
- 下拉放大:監(jiān)聽scrollView的滑動的值將view的scale改變
ScrollView注意點
- 背景色設置:scrollView在xib中設置的背景不會立即生效餐禁,只有在運行后才能顯示背景色
- 滾動條:在xib中拖的scrollView就算不能滾動,也會有水平和垂直的滾動條突照,通過代碼創(chuàng)建的則不會有默認的水平和垂直的滾動條
- 一個簡單的圖片輪播器 密碼:9wwr