Việc tính toán contentSize của UIScrollView 1 cách thủ công là cách làm thường chỉ dành cho các lập trình viên mới bắt đầu, những người luôn cho mọi thứ vào code. Và đến khi file code dài hàng nghìn line người khác nhìn vào code chỉ muốn tẩu hoả nhập ma. Nói đùa thế thôi chứ cái gì cũng cho vào code hết là cách mình không khuyến khích, nếu AutoLayout có thể sử dụng được thì mình nên tận dụng triệt để. Nay mình sẽ chia sẻ cách quản lý contentSize của UIScrollView chỉ bằng cách kéo thả rất đơn giản.


Step 1:
Đầu tiên bạn thêm 1 cái View để chứa ScrollView, đặt tên là scrollViewContainer.
Step 2:
Thêm scrollView và các constraints cho scrollView này. Leading, trailing, top và bottom đều đc set là 0
Step 3:
Bạn sẽ không thêm trực tiếp các views vào trong scrollView, mà sẽ chỉ thêm duy nhất 1 view và view này sẽ chứa tất cả các phần tử khác. Mình đặt tên view này là ContentView. Thiết lập constraints cho ContentView này như sau:

  • Leading, trailing, top và bottom = 0
  • Height, width bằng với height, width của scrollViewContainer
  • Set priority của height là low (Rất quan trọng nhé).


Step 4:
Thêm tất cả các constraints cho các phần tử trong view, height của ContentView chính là contentSize của scrollView. Hãy luôn nhớ thêm bottom constraint của phần tử cuối cùng với ContentView, mình ngày trước hay quên cái này nên scrollView toàn ko scroll đc.
Kết quả: スクリーンショット 2018-04-19 20.03.56
Thế là xong. Ai có thắc mắc gì thì comment dưới nhé.