一、知識點簡單介紹
1.uiscrollview控件是什麼?
(1)移動裝置的螢幕⼤大⼩小是極其有限的,是以直接展⽰示在⽤使用者眼前的内容也相當有限
(2)當展⽰示的内容較多,超出⼀一個螢幕時,⽤使用者可通過滾動⼿手勢來檢視螢幕以外的内容
(3)普通的uiview不具備滾動功能,不能顯⽰示過多的内容
(4)uiscrollview是一個能夠滾動的視圖控件,可以⽤用來展⽰示⼤大量的内容,并且可以通過滾 動檢視所有的内容
(5) 舉例:手機上的“設定”、其他⽰示例程式
2.uiscrollview的簡單使用
(1)将需要展⽰的内容添加到uiscrollview中
(2)設定uiscrollview的contentsize屬性,告訴uiscrollview所有内容的尺⼨寸,也就是告訴 它滾動的範圍(能滾多遠,滾到哪⾥裡是盡頭)
3.屬性
(1)常用屬性:
1)@property(nonatomic)cgpointcontentoffset; 這個屬性⽤用來表⽰示uiscrollview滾動的位置
2)@property(nonatomic)cgsizecontentsize;這個屬性⽤用來表⽰示uiscrollview内容的尺⼨寸,滾動範圍(能滾多遠)
3)@property(nonatomic)uiedgeinsetscontentinset; 這個屬性能夠在uiscrollview的4周增加額外的滾動區域
(2)其他屬性:
1)@property(nonatomic) bool bounces; 設定uiscrollview是否需要彈簧效果
2)@property(nonatomic,getter=isscrollenabled)boolscrollenabled; 設定uiscrollview是否能滾動
3)@property(nonatomic) bool showshorizontalscrollindicator; 是否顯⽰示⽔水準滾動條
4)@property(nonatomic) bool showsverticalscrollindicator; 是否顯⽰示垂直滾動條
4.注意點
• 如果uiscrollview⽆無法滾動,可能是以下原因:
(1)沒有設定contentsize
(2) scrollenabled = no
(3) 沒有接收到觸摸事件:userinteractionenabled = no
(4)沒有取消autolayout功能(要想scrollview滾動,必須取消autolayout)
二、關于uiscrollview常見屬性的一些說明
1.屬性使用的代碼示例
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
2.幾個屬性坐标示意圖
3.重要說明
(1)uiscrollview的frame與contentsize屬性的區分:uiscrollview的frame指的是這個scrollview的可視範圍(可看見的區域),contentsize是其滾動範圍。
(2)contentinset(不帶*号的一般不是結構體就是枚舉),為uiscrollview增加額外的滾動區域。(上,左,下,右)逆時針。contentinset可以使用代碼或者是視圖控制器進行設定,但兩者有差別(注意區分)。
(3)contentsize屬性隻能使用代碼設定。
(4)contentoffset是個cgpoint類型的結構體,用來記錄scrollview的滾動位置,即記錄着“框”跑到了哪裡。知道了這個屬性,就知道了其位置,可以通過設定這個屬性來控制這個“框”的移動。
(5)不允許直接修改某個對象内部結構體屬性的成員,三個步驟(先拿到值,修改之,再把修改後的值賦回去)。
(6)增加了額外區域後,contentoffset的原點在哪裡?
三、有助于了解的幾個截圖
模型圖:
對比圖:
坐标圖: