Я знаю, как создать представление контейнера в iOS через раскадровку, но это не позволит мне иметь вид контейнера в ячейке просмотра коллекции. Я бы хотел, чтобы одна из ячеек загрузила другой контроллер в качестве контейнера. Как мне это сделать?программно создать представление контейнера в ios
ответ
Прежде чем я дам вам код, вы должны понимать, что это, безусловно, плохая идея. UITableViewCells
очень многоразовые и представляют собой просто необработанные представления, не поддерживаемые реальным контроллером представления (только источником данных). Контейнерные представления предназначены для вложенных контроллеров, а не только для размещения внутри UIView
(например, ячейки таблицы). Но я отвлекся:
Вот документы Apple, относящиеся к container views (поиск вид контейнера).
В разделе Добавление и удаление ребенка:
// Adding a container view
[self addChildViewController:content]; // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:content.view];
[content didMoveToParentViewController:self]; // 3
// Removing a container view
[content willMoveToParentViewController:nil]; // 1
[content.view removeFromSuperview]; // 2
[content removeFromParentViewController]; // 3
При настройке ячейки он, скорее всего, уже есть вид контейнера внутри него (от его предыдущей конфигурации). Поэтому, прежде чем добавлять новый, вы должны сначала попытаться повторно использовать то, что вы уже добавили. Но опять же, это решение на самом деле не рекомендуется, но вы уже должны знать, что, поскольку IB заблокировал вас от этого.
Итак, теперь, используя представление коллекции, было бы лучше, если бы я просто сделал вид uiscroll с отдельными разделами, сделанными чуть более вручную (и статичными вместо повторного использования)? Я полагаю, что в этом случае я мог бы просто использовать вид контейнера из раскадровки – moger777
@ moger777, да, это было бы отличным альтернативным решением. Вы тоже можете это сделать в раскадровке, но я скажу, что делать это в коде будет гораздо более универсальным. Например, если вы хотите переключить два «раздела» или добавить новый между двумя текущими. Для этого в раскадровке потребуется много обновлений ограничений. Выполнение этого кода, вероятно, просто потребует добавления нового элемента в массив (который зацикливается в коде, чтобы добавить все виды контейнеров в следующем порядке). – Firo
Я немного смущен тем, что должно быть здесь currentClientView – moger777
- 1. Создать представление программно
- 2. Как создать представление приложений iOS программно
- 3. iOS Как получить представление вида UILabel программно
- 4. Программно переключайте представление в iOS
- 5. Как назначить представление программно в ios
- 6. Как создать представление программно в какао MacOSX
- 7. Невозможно создать UIViewController программно, не создавая представление?
- 8. iOS: Как программно добавить представление в виде раскадровки
- 9. Как создать представление программно с помощью .xib?
- 10. Как отобразить представление контейнера с анимацией в iOS?
- 11. Создать ярлык на ios программно
- 12. ios создать запрос сертификата программно
- 13. iOS - Невозможно создать GPUImageView программно?
- 14. Как создать представление карты в ящике сокета контейнера
- 15. Показать представление контейнера над uinavigation
- 16. Добавить представление контейнера в контроллер навигации
- 17. React Native (IOS), как создать представление, которое прокручивается?
- 18. Создать AAC-файл программно в iOS?
- 19. создать Scrollview программно в C# IOS
- 20. Как создать слайдер диапазона программно в iOS?
- 21. Создайте представление, используя представление коллекции в ios
- 22. iOS/swift - создать календарное представление недели
- 23. Как создать представление для клиента telnet iOS?
- 24. iOS: шаблон контроллера контейнера
- 25. Центрировать представление без вида контейнера?
- 26. Создать представление контейнера для двух UIViewController на iPad
- 27. Как я могу создать PDF программно в iOS
- 28. iOS - контроллер контейнера Swift
- 29. Как скрыть представление программно?
- 30. Программно добавить представление в LinearLayout
Hey popeye, в основном, когда вы пытаетесь перетащить контейнерный вид в раскадровке в ячейку просмотра коллекции, компилятор говорит, что вы не можете использовать повторно используемую ячейку с контейнером – moger777
Как это связано с тем, что я только что спросил? – Popeye