На практиці всі використовують UICollectionView, з яким я стикався, коли їм потрібен лише UITableView. "Це одновимірно. Він рухається вгору і вниз. Чому ви додаєте непотрібні методи делегування для макета І даних?". Одного разу я витратив додаткові 2 години, допомагаючи стартапу з’ясувати, чому їх UICollectionViewCell зіпсувався, тому що власник, який не читав ні посібник з анімації, ні HIG, ні посібник UICollectionView, вирішив використовувати його та додати змінну висоту та анімацію. Що й казати, він завдав собі головного болю та багато втратив часу на не критичну для бізнесу проблему, якої міг уникнути, просто використовуючи комірку таблиці, оскільки немає додаткового делегата макета + Nib.
Дозвольте зрозуміти, я все за UICollectionView, коли ваші дані та дисплей потребують цього. Вони дуже потужні. Але на практиці більшість людей, яких я бачив, використовували їх у списках.
Це викликає ще один недолік. Вони також використовуються у коротких постійних списках, які ніколи не змінюватимуться. У цьому випадку просто зробіть Xib. Або напишіть власний вигляд, який їх складає. Чому? Оскільки вам не потрібно керувати пам’яттю для 5 наборів міток за допомогою кнопки або перемикача. Якщо вони можуть змінитися, тоді так, використовуйте список. Якщо вам потрібна фізика, тоді UICollectionView добре працює з деякими крутими ефектами. Але чи дійсно вам потрібно додати 5 методів делегування та систему макетування для 5 міток, які ніколи не рухатимуться?
Крім того, я не забуваю, що iOS також тепер має власний режим стекування. Я ніколи не можу змусити його деформуватись так, як я хочу, навіть незважаючи на те, що я цілком вправний у двовимірних та анімаційних системах, тому ніколи не використовую вбудовану.
Все, що я кажу, це визначте свої вимоги. Можливо, вам не потрібно жодного з них, якщо ваш інтерфейс не додає / видаляє елементи та не оновлюється. Або, можливо, ви хочете написати Картову гру і викинути їх практично на стіл, а потім скористайтеся UICollectionView з фізичною системою для її керівництва з макетування.