如何在StoryBoard給ScrollView新增約束?

Tags: 螢幕, 檢視,

在ios開發中經常用到滾動檢視,我們都為它那平滑的過渡所動容,但是ScrollView的螢幕適配是個坑,這裡就教大家怎麼跳過坑。

工具/原料

Xcode

方法/步驟

首先在我們的Controller自帶的View裡面新增一個ScrollView,點開下面設定約束的4個按鈕的第2個,約束設定距離父試圖的距離為(0,0,0,0)如下圖所示。

如何在StoryBoard給ScrollView新增約束

在ScrollView上面新增一個View成為ScrollView的子檢視,點開下面設定約束的4個按鈕的第2個,設定約束距離ScrollView的距離為(0.0.0.0)如下圖所示。

如何在StoryBoard給ScrollView新增約束

這個時候會發現報錯了,不用緊張~, 先不用管它,咱們繼續往下走。

如何在StoryBoard給ScrollView新增約束

點開下面設定約束的4個按鈕的第一個,選擇 Horizontal Center in Container, 並打上對勾, (如果想要左右滑動就選擇 Vertical Center in Container, 同時實現左右上下則全不選)

如何在StoryBoard給ScrollView新增約束

再次開啟下面設定約束的4個按鈕的第2個 選擇Height 設定你想要的560. (如果想要左右滑動就選擇 Width, 同時實現左右上下就全部設定);這個高度是以後執行後Scroller的ContentSize;

如何在StoryBoard給ScrollView新增約束

.設定完成以後發現錯誤不見了,只有一個黃色的警告,這是由於Frame沒有更新導致的,我們來更新下Frame。

如何在StoryBoard給ScrollView新增約束

接下來我們就可以在這個ScrollView的子檢視View上面來新增控制元件了。 設定約束的時候是相對於父試圖View。現在View是設定的固定的一個值。 如果想要動態的設定,就需要把我們剛才加的高度的約束設定成屬性;

如何在StoryBoard給ScrollView新增約束

將上一步的屬性起一個名字, height; 然後重寫 -(void)updateViewConstraints 方法,在呼叫super 後 動態的設定height這個約束的constant屬性。

如何在StoryBoard給ScrollView新增約束

螢幕, 檢視,
相關問題答案