Tôi có UIScrollView được thiết lập theo phương pháp viewDidLoad
của UIViewController
(Tôi sẽ gọi nó là ScrollViewController
). Chế độ xem cuộn chứa các trang có nội dung ngang (tương tự như ứng dụng thời tiết gốc).Cách cuộn UIScrollView khi tải khi sử dụng bố cục tự động
Khi hiển thị chế độ xem cuộn, bạn có thể chọn trang bắt đầu. Mẫu của tôi là:
- init a
ScrollViewController
. Không có gì xảy ra ở đây cả. Thuộc tínhcurrentPage
được mặc định là 0. - đặt
scrollViewController.currentPage
thành số trang mong muốn. - trong
viewDidLoad
củaScrollViewController
, đọcself.currentPage
và sử dụngscrollToRect
hoặcsetContentOffset
để cuộn tương ứng.
Việc triển khai cuộn có vẻ tốt, vì tôi đang sử dụng cùng một mã ở nơi khác để chuyển đến một số trang nhất định. Nhưng khi tải đầu tiên, không có gì xảy ra (tức là, chế độ xem cuộn không được cuộn đến trang mong muốn).
tôi nghĩ Tôi đã tìm thấy lý do - có vẻ như rằng contentSize
của xem di chuyển (trong đó có nguồn gốc bởi autolayout nhớ) là 0 trong viewDidLoad
, và điều này dường như điều này ngăn chặn di chuyển. Nó cũng bằng 0 trong viewWillAppear. Chỉ trong viewDidAppear
hiện công việc cuộn, mà tất nhiên làm cho một kinh nghiệm người dùng lẻ.
Tôi làm cách nào để giải quyết vấn đề này? Có phải nó khôn ngoan để bằng cách nào đó buộc bố trí trong viewDidLoad
? Hoặc một số cách tiếp cận khác?