Клетки-прототипы в перо вместо раскадровки - PullRequest
56 голосов
/ 20 декабря 2011

Для лучшего повторного использования я хочу создать табличное представление вне моей раскадровки.

Теперь, когда я создаю ViewController на основе UITableView с Nib в XCode, я получаю TableView по умолчанию в файле NIB.Однако я не могу в Интерфейсном Разработчике добавить ячейки прототипа, как в своей раскадровке.

В настоящее время невозможно добавить ячейки прототипа в перо или я что-то упустил.

Большое спасибо за любую помощь.

Ответы [ 2 ]

91 голосов
/ 05 февраля 2012

iOS 5 включает новый метод для UITableView: registerNib: forCellReuseIdentifier:

Чтобы использовать его, поместите UITableViewCell в перо. Это должен быть единственный корневой объект в кончике.

Вы можете зарегистрировать перо после загрузки вашего tableView, а затем при вызове dequeueReusableCellWithIdentifier: с идентификатором ячейки он извлечет его из кончика, как если бы вы использовали ячейку прототипа Storyboard.

5 голосов
/ 16 октября 2017

В Swift 4:

  1. Создание нового класса CocoaTouch, подкласса из UITableViewCell.
  2. Важно - включить флажок 'Также создайте файл XIB' , который создает файл Swift и файл .xib
  3. Добавьте метки в Xib, как вы делали бы для ячейки-прототипа в Storyboard
  4. Connect labelвыходы в новый файл swift
  5. Важно - Зарегистрировать файл пера в viewDidLoad

    yourTableview.register(UINib.init(nibName: "CustomCellTableViewCell", bundle: nil), forCellReuseIdentifier: "Cell")
    

    (или)

    yourTableview.register(UINib(nibName: "CustomCellTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "Cell")
    
  6. Реализуйте источник данных и делегатов как обычно и вставьте их в CustomCell в cellForRowAtIndexPath.
...