UIScrollView AutoLayout

Zhi-Hong Lin
2 min readMar 21, 2019

--

先說結論,當 scrollView 加上 autolayout 後,賦予值給 contentSize 這個屬性時會沒有作用,原因是這時候的 contentSize 會根據其 subView 大小來自動計算。

scrollView 自身的約束,可以像正常的 view 參照其 superView 添加,但以下兩點需要注意

1.scrollView 裡的 subView 尺寸不能直接以 scrollView 的尺寸為參照2.scrollView 裡的 subView 的約束必須要完整設置

下面我們做個簡單範例,scrollView 裡加上兩個 imageView,像以往一樣直接添加約束,但運行後會發現,明明設置 imageView 的左右邊和 superView 的左右邊一樣,但是 imageView 的 layout 還是不對。

第一種解法

添加一個 contentView ,讓兩個 imageView 的約束都去參照這個 contentView,而不是直接參照 scrollView

第二種解法

我們將兩個 imageView 的約束都完整設置,也就是說top/leading/bottom/trailing 以及寬和高都需要設置

附上 Demo code

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response