IOS ScrollView

Tay’s Log
3 min readJul 13, 2017

--

記錄一下UIScrollVIew 在autolayout的時候遇到不少問題
UIScrollVIew 跟一般的View不太一樣,它還有一個contentSize的概念
什麼是contentSize?contentSize 可以讓scrollView知道要滑動的內容距離有多少而contentSize 會根據UIScrollView他所包含的子視圖來計算。


舉個例子
放一個ScrollVIew 到畫面上,設定Constraints(top,bottom,leading,trailing)都貼齊邊界

之後我們在這個scrollVIew中放入一個imageView設定他的Constraints

一般來說這樣設定應該就沒問題了,但是在UIScrollView上會發現出現問題

這是什麼意思呢?剛剛說過scrollView有一個特別的屬性contentSize ,contentSize是由scrollView中的子視圖決定,照理說我們設定了寬高,contentSize不就可以確定了嗎?
其實是沒辦法的,contentSize雖然知道imageVIew的寬高,但它不知道imageView距離邊界的距離有多遠,所以它無法決定contentSize到底要有多大,只要設定右邊和下邊的距離後錯誤就消失了。

在看另外一種情況

也無法像一般我們會用與四邊距離要決定View的寬高,因為contentSize是根據子視圖決定,
而現在子視圖是依據contentSize決定寬高,變成互相依賴。

所以現在知道要在scrollVIew中添加子視圖constraint需要以下幾個要求
1. 子視圖不但要確定自己大小,也要確定與邊界之間的距離。
2. 子視圖不能依賴與scrollView有關的佈局。

Originally published at w-tay.blogspot.com on July 13, 2017.

--

--

Tay’s Log
Tay’s Log

Written by Tay’s Log

這個Blog是為了讓有一顆金魚腦的宅宅工程師,用來記錄用的。

No responses yet