在使用storyboard和xib時,我們經(jīng)常要用到ScrollView劫拢,還有自動布局AutoLayout,但是ScrollView和AutoLayout 結(jié)合使用强胰,相對來說有點復(fù)雜舱沧。根據(jù)實踐,我說一下我的理解偶洋,在故事板或xib中熟吏,ScrollView是根據(jù)其下面的一個View的大小來確定ContentSize的大小。
看一下效果
-
創(chuàng)建一個項目玄窝,拖拽一個ScrollView到故事板中牵寺,如下圖
-
選中ScrollView,添加約束恩脂。
-
拖拽一個View到ScrollView上帽氓, 然后添加上下左右四周約束。
4.添加完之后俩块, 可能會報一個錯黎休, 如下圖浓领, 這個暫時別去管。
5.我們先確定一下势腮, 我們是需要水平方向的滾動還是豎直方向的滾動联贩,或者水平方向和豎直方向都需要滾動。
a.水平方向和豎直方向都需要滾動的話捎拯, 不用添加
b.水平方向滾動需要添加下面一個約束
c.豎直方向需要添加下面一個約束
6.我們以水平方向滾動為例泪幌, 我們需要確定我們想要的寬度, 添加一個固定的寬度的約束署照。
7.選中View祸泪, 更新一下Frame
8.如果是想要動態(tài)設(shè)置ScrollView的寬度,也就是設(shè)置View的寬度約束的值藤树, 我們將其拉成屬性浴滴, 然后修改其值。
9.如果是確定的寬度岁钓, 可以在- (void)updateViewConstraints這個方法中修改升略,也可以在別處修改。
10.現(xiàn)在運行屡限,就可以水平滾動了品嚣。 豎直方向的滾動和水平方向滾動的設(shè)置差不多。 我們來添加兩個View钧大, 先拖拽一個View(我設(shè)為灰色)到視圖上翰撑, 然后添加約束, 如下圖
11.再拖拽一個View啊央, 背景顏色設(shè)為紅色眶诈,設(shè)置好之后, 將frame設(shè)置到我們需要的瓜饥, 我這邊將X設(shè)置到600逝撬。
12.我們給第二個View添加約束,如下圖
13.我們還需要設(shè)置一個約束乓土, 就是第二個View距離SuperView的距離宪潮,就是第二個View的Leading約束
14.然后將這個約束Leading拉成屬性,在- (void)updateViewConstraints設(shè)置他的值
如下圖
這樣子就OK了趣苏。
自動布局需要自己去多多實踐狡相, 有很多細節(jié)需要注意的。
這個例子的demo地址:http://download.csdn.net/detail/h1101723183/8253159
豎直方向的Demo下載地址在 http://download.csdn.net/detail/h1101723183/8266503