xib拖拽scrollview實現可以滑動

2021-07-26 16:17:45 字數 1806 閱讀 1809

在使用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...