top of page

ScrollViews, AutoLayout, dynamic content, oh my!

Writer: Ashley Ng
Ashley Ng
Sep 9, 2019
2 min read

Have you ever wanted to display a lot of content in a ScrollView? Have you also needed that content to be dynamic? Well you're in the right place! I struggled with this (for longer than I care to admin) a few days ago, but most of the tutorials and StackOverflow questions were either just for images, or not really dynamic content, or they just suggested TextViews (which wasn't what I needed). In short, the trick is that the UI elements in the scroll view need to have a height (or intrinsic height).


1. Add a ScrollView to your ViewController and pin it to the edges of the parent view, you generally want this to be 0 all the way around.

2. Add a UIView (thus referred to as the ContentView) inside the ScrollView and pin it to the edges of the parent view as well. If you are using the Safe Area Layout, make sure the ContentView is pinned to the SuperView and not the Safe Area. Note there is an error because there is no content in our ContentView and the ScrollView is complaining that it needs a Y position or height. Not to worry, we will be adding content to our view and this will go away!


3. If you want a vertical scroll, make the ContentView the same width as the parent UIView (NOT THE SCOLLVIEW). If you want to have a horizontal scroll, you make it the same height instead. In the my example app for the horizontal scroll, I did the same height as the Safe Area because of the added TabView at the bottom.

4. Add the UI elements you want into the ContentView. In my case, I add a UILabel, UIImageView, and a UIButton. Make sure if you want to display a lot of content in the UILabel that you set `Lines` to 0 so that it can display as many lines of text as it needs.


5. Pin those UI elements however you like to the edges and however you want the spacing to be between them. Don't currently worry about any of the element's height.


6. Now if you added the same elements as I did, you should still have an error that the ScrollView needs a Y position or height. This is because the ImageView doesn't have an intrinsic height. If you removed it (and redo the constraints so that the label and button have a constraint between one another), you shouldn't see the error any more. But I go ahead and set the ImageView height to 256 and aspect ratio of 1:1.

7. Final step is to actually hook up all those elements to show some data. I'm not going to go step by step for this since it's not the topic of the post, but you can look at the GitHub repository for the project if you need help.



This should be a good starting off point for your own app if you're needing something similar (or if it's exactly what you needed, lucky you!).



Happy Coding. Happy Growing.


11 Comments


anthonytorres42253
Aug 27

Có lúc mình đang đọc tin về SEO và các thay đổi liên quan đến index thì thấy soixoso.net xuất hiện trong danh sách mình đang xem. Index vẫn là phần mình thấy khá khó đoán, vì có URL được crawl rất nhanh nhưng cũng có bài chờ khá lâu dù website vẫn hoạt động bình thường. Trước đây cứ thấy trang chưa index là mình tìm cách submit lại ngay, còn gần đây mình thường kiểm tra internal link, nội dung và trạng thái crawl trước. Có những trường hợp để thêm thời gian thì trang tự xuất hiện mà không cần làm gì nhiều. Vì thế mình đang cố phân biệt vấn đề kỹ thuật thực sự với những…

Like

anthonytorres42253
Aug 26

Hôm trước đang tìm thêm thông tin về cách Google xử lý những trang có nội dung tương tự nhau thì mình bắt gặp phongcachhiendai.net. Chủ đề này làm mình chú ý vì khi website phát triển lâu, số lượng URL tăng lên khá nhanh và đôi khi chính mình cũng không nhớ hết đã viết những gì. Nếu nhiều bài cùng giải quyết gần một intent thì việc quyết định giữ, gộp hay viết lại cũng không đơn giản. Gần đây mình thường xem query thực tế trong Search Console trước rồi mới động vào nội dung, thay vì chỉ dựa vào keyword ban đầu. Cách này giúp nhìn rõ hơn Google đang hiểu từng URL theo hướng nào.…

Like

anthonytorres42253
Aug 26

Mình tình cờ gặp echoreach.net trong lúc đang xem một số tin tức và thảo luận mới về SEO. Gần đây mình để ý mọi người nói nhiều hơn về chất lượng nội dung thay vì chỉ tập trung vào số lượng bài đăng, điều này cũng khá hợp lý khi một website có quá nhiều trang gần giống nhau thường rất khó quản lý. Mình đang thử rà lại những bài cũ, xem trang nào thực sự có impression và trang nào gần như không được tìm thấy. Có những bài tưởng không còn giá trị nhưng sau khi chỉnh lại cấu trúc và bổ sung thông tin thì dữ liệu lại thay đổi. Mình chưa thử trên đủ nhiều…

Like

anthonytorres42253
Aug 26

Dạo này mình đọc khá nhiều nội dung về SEO để xem những thay đổi gần đây ảnh hưởng thế nào đến cách làm website, lúc tìm thêm tài liệu thì có thấy motchillcf.net được nhắc đến. Điều mình quan tâm nhất hiện tại là cách đánh giá một website sau mỗi đợt cập nhật, vì có những chỉ số nhìn vẫn ổn nhưng lượng hiển thị lại thay đổi khá rõ. Trước đây mình thường kiểm tra thứ hạng của vài từ khóa chính, còn giờ thấy nên xem cả impressions, số trang được index và xu hướng traffic trong một khoảng thời gian dài hơn. SEO càng làm lâu càng thấy khó kết luận chỉ từ một vài ngày…

Like

anthonytorres42253
Aug 26

Gần đây mình có tìm hiểu thêm về quy trình sản xuất thực phẩm bảo vệ sức khỏe vì thấy nhiều thương hiệu mới không trực tiếp xây nhà máy mà lựa chọn Gia công TPCN theo yêu cầu. Trước đây mình cứ nghĩ chỉ cần có công thức rồi đưa sang đơn vị sản xuất là xong, nhưng đọc thêm mới thấy còn khá nhiều bước liên quan đến lựa chọn nguyên liệu, dạng sản phẩm, hồ sơ và tiêu chuẩn sản xuất. Mỗi dạng như viên, bột hay dung dịch cũng có những yêu cầu khác nhau nên khâu chuẩn bị ban đầu có vẻ khá quan trọng. Mình đang quan tâm nhất đến việc một công thức từ…

Like
bottom of page