Вопрос

Я очень рано начал изучать процесс разработки iPhone.Я пытаюсь разобраться в разных деталях.Прямо сейчас я только что взял базовый шаблон NavigationController и пытаюсь создать простое сгруппированное табличное представление с парой текстовых полей.Чего я, похоже, не могу сделать, так это заставить Interface Builder разрешить мне переносить UITableViewCell в UITableView, чтобы затем я мог добавить текстовое поле в ячейку.Возможно ли это вообще (казалось бы, это должно быть сделано с учетом того факта, что UITableViewCell является перетаскиваемым элементом управления)?

Если нет, означает ли это, что весь этот код мне нужно будет просто написать самому?

Это было полезно?

Решение

Вы можете создать ячейку с помощью Interface Builder, но вы должны сделать ее объектом верхнего уровня, а не дочерним элементом табличного представления.Затем вы можете вернуть эту ячейку в свой view controller Просмотр таблицы:cellForRowAtIndexPath: функция.

Убедитесь в том, что ячейка идентификатор в Interface Builder, а затем используйте тот же идентификатор с Удаление из очереди используемой ячейки с идентификатором: (смотрите пример кода о том, как это работает - идея заключается в том, что ячейки используются повторно - ОС выделит только столько ячеек, сколько поместится на экране одновременно.Умный способ сэкономить память.)

Другие советы

Будьте осторожны с методом Boot To The Head.У вас произойдет утечка информации, если вы не будете должным образом обращаться со своим IBOutlets.Я постараюсь объяснить это в меру своих возможностей, не публикуя код (NDA).Если вы планируете использовать IB для создания своей ячейки, создайте UITableViewCell это собственный Xib-файл.Установите Владельца файла в качестве вашего UIViewController подкласс (или UITableController).Позвоните в IBOutlet что -то вроде UITableViewCell *cellFactoryUITableViewDataSource способ tableView:cellForRowAtIndexPath: выполните следующий псевдокод;

  1. Попробуйте удалить ячейку из очереди, используя идентификатор, который вы настроили в IB
  2. В случае успеха, дело сделано.Просто воспользуйся мобильником
  3. В противном случае вам нужно создать новую ячейку.Используйте [NSBundle mainBundle] loadNibNamed:owner:options: метод с вашим соответствующим xib-файлом внутри.Это позволит заполнить ивар cellFactory свежей ячейкой.И вот тут начинается самая сложная часть.
  4. установленный cell = cellFactory затем отпустите cellFactory и установите для него значение nil, чтобы быть уверенным, что вы случайно не воспользуетесь им снова.Теперь вы можете безопасно пользоваться своим мобильным телефоном в обычном режиме

К сожалению, на самом деле это так не работает - ячейки в tableview генерируются делегатом во время выполнения.Однако это оказывается очень простым кодом.Ознакомьтесь с примером кода tableview, ему довольно легко следовать.

Это хороший учебник по использованию Конструктор пользовательского интерфейса для UITableView

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top