在使用storyboard和xib時,我們經常要用到scrollview,還有自動布局
autolayout
,但是scrollview和autolayout 結合使用,相對來說有點複雜。根據實踐,我說一下我的理解,在故事板或xib中,scrollview是根據其下面的乙個view的大小來確定contentsize的大小。
看一下效果
1. 建立乙個專案,拖拽乙個scrollview到故事板中,如下圖
2. 選中scrollview,新增約束。
3. 拖拽乙個view到scrollview上, 然後新增上下左右四周約束。
4.新增完之後, 可能會報乙個錯, 如下圖, 這個暫時別去管。
5. 我們先確定一下, 我們是需要水平方向的滾動還是豎直方向的滾動,或者水平方向和豎直方向都需要滾動。
a.水平方向和豎直方向都需要滾動的話, 不用新增
b.水平方向滾動需要新增下面乙個約束
c.豎直方向需要新增下面乙個約束
6.我們以水平方向滾動為例, 我們需要確定我們想要的寬度, 新增乙個固定的寬度的約束。
7.選中view, 更新一下frame
8.如果是想要動態設定scrollview的寬度,也就是設定view的寬度約束的值, 我們將其拉成屬性, 然後修改其值。
9. 如果是確定的寬度, 可以在- (void)updateviewconstraints這個方法中修改,也可以在別處修改。
10.現在執行,就可以水平滾動了。 豎直方向的滾動和水平方向滾動的設定差不多。 我們來新增兩個view, 先拖拽乙個view(我設為灰色)到檢視上, 然後新增約束, 如下圖
11.再拖拽乙個view, 背景顏色設為紅色,設定好之後, 將frame設定到我們需要的, 我這邊將x設定到600。
12.我們給第二個view新增約束,如下圖
13.我們還需要設定乙個約束, 就是第二個view距離superview的距離,就是第二個view的leading約束
14.然後將這個約束leading拉成屬性,在- (void)updateviewconstraints設定他的值
如下圖這樣子就ok了。
自動布局需要自己去多多實踐, 有很多細節需要注意的。
xib檔案使用
xib 布局檔案在安裝到手機後會被轉成 nib檔案。因此記住nib就是xib。獲取乙個 xib檔案 使用nsbundle 的loadnibname 方法獲取,傳入要獲取的xib的檔名 不用字尾 nsbundle bundle nsbundle mainbundle nsarray objs bund...
iOS 自定義xib並在xib中使用
新建乙個customview並為它建立乙個customview.xib 選擇customview.xib的file s owner,把customer class指定為customview。修改customview.m檔案如下 import customview.h implementation c...
高階拖拽(帶框拖拽)
右邊判斷div的left 瀏覽器的可視區clientwidth div的寬度,表示物體被拖出右邊 else if l document.documentelement.clientwidth div1.offsetwidth else if t document.documentelement.cl...