Chế độ xem trang trí chỉ là tên gọi: trang trí, chrome. Chỉ có bố cục xem bộ sưu tập quyết định chúng là gì và vị trí đặt chúng (ví dụ, nếu bạn muốn vẽ các đường trên màn hình mỗi 5 mục).
Chế độ xem bổ sung có liên quan nhiều hơn đến dữ liệu của bạn. Bố cục chế độ xem bộ sưu tập vẫn quyết định vị trí đặt chúng, nhưng chúng được cung cấp bởi nguồn dữ liệu chế độ xem bộ sưu tập, giống như các ô thông thường. Ví dụ, nếu bạn muốn đặt tiêu đề cho các phần, bạn sẽ sử dụng các khung nhìn bổ sung vì tiêu đề sẽ khác nhau cho từng phần và bạn cần gọi nguồn dữ liệu cho từng phần.
Nếu trình tải của bạn là chung, có thể là chế độ xem trang trí, tuy nhiên, bố cục trang trí không thực sự có thể truy cập được (đối tượng bố cục cho biết vị trí đặt chúng và đó là chúng được tạo bởi chế độ xem bộ sưu tập và bạn không bao giờ nhận được một tham chiếu đến chúng), vì vậy nếu bạn muốn bắt đầu/ngừng hoạt ảnh, thì chế độ xem trang trí không phải là lựa chọn tốt nhất. Nếu bạn sử dụng chế độ xem bổ sung, thì bạn có quyền truy cập vào chế độ xem tại thời điểm tạo (trong phương thức nguồn dữ liệu của bạn là collectionView:viewForSupplementaryElementOfKind:atIndexPath:
). Tuy nhiên, bạn chỉ có thể truy vấn chế độ xem bộ sưu tập cho các ô dữ liệu thông thường sau khi chúng được trình bày trên màn hình. Ngoài ra, bạn sẽ phải viết lớp UICollectionViewLayout
của riêng mình nếu bạn muốn sử dụng trang trí tùy chỉnh hoặc chế độ xem bổ sung. Các cơ sở UICollectionViewFlowLayout
chỉ cung cấp cho một chân trang và một cái nhìn bổ sung tiêu đề.
Tôi đã nhầm lẫn về sự khác biệt cho đến khi tôi nhận ra những điều sau đây: cho chế độ xem bổ sung, bạn gọi một trong các phương thức 'register' trên chế độ xem bộ sưu tập (hoặc đăng ký trong bảng phân cảnh). Đối với các khung nhìn trang trí, bạn sử dụng một trong các phương thức 'register' trên chính đối tượng layout. – RyanM