7

Tôi có bố cục có hai cột cạnh nhau. Có cách đơn giản để làm điều này bằng cách sử dụng một UICollectionView đơn? Chỉ có yêu cầu rằng giải pháp phải làm việc cho iOS 8 và các tế bào phải ngăn xếp theo chiều dọc trong mỗi cột như thế này:Hai cột UICollectionView với tiêu đề

----------------- 
    |  A  | 
    |  B  | 
    ----------------- 
    | C | E | 
    | C | F | 
    | D |  | 
    | E |  | 
    ----------------- 

sự xếp chồng lên nhau Cs chứng minh rằng các tế bào trong các cột trái và phải có thể là chiều cao khác nhau, do nó không đủ để chỉ vẽ chúng sang trái, phải, trái, phải.

+0

Không thể bạn chỉ cần thực hiện một CollectionView với 2 cột và sau đó làm cho các tế bào đầu tiên mất tất cả không gian bằng cách sử dụng phương pháp đại biểu: 'collectionView: Bố cục: sizeForItemAtIndexPath: 'và làm cho các tế bào thứ hai (bên cạnh cái đầu tiên) với chiều rộng là 0? –

+0

Tôi có thể làm điều đó, nhưng nó sẽ không có khả năng làm cho khoảng cách dọc lớn giữa các tế bào trong cùng một cột nếu, ví dụ, C và E, nơi chiều cao khác nhau? (Tôi vừa cập nhật bố cục ở trên để phản ánh điều đó). – Brandon

+0

Tôi sử dụng thư viện này cho bố cục của mình, nếu tôi hiểu chính xác câu hỏi của bạn: https://github.com/chiahsien/CHTCollectionViewWaterfallLayout –

Trả lời

2

Điều này thực sự khá đơn giản bằng cách sử dụng UICollectionView với bố cục luồng. Vì mỗi ô có thể có chiều cao động, điều duy nhất bạn cần yêu cầu là mỗi ô có chiều rộng 160 (hoặc một nửa chiều rộng của bộ sưu tập). Sau đó, triển khai collectionView:layout:sizeForItemAtIndexPath: để mỗi mục có thể trả về chiều cao thích hợp.

Do mỗi ô có chiều cao động, bạn có thể kết thúc bằng một cột dài hơn một cột khác. Nếu bạn cũng muốn chiều cao cột bằng nhau, thì bạn sẽ muốn xáo trộn thứ tự danh sách của bạn theo cách sao cho chiều cao của nửa đầu của mặt hàng xấp xỉ chiều cao của nửa kia.

enter image description here

Các vấn đề liên quan