Подтвердить что ты не робот

Прототипные ячейки в наконечнике вместо раскадровки

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

Теперь, когда я создаю ViewController на основе UITableView с Nib в Xcode, я получаю таблицу TableView по умолчанию в файле nib. Тем не менее, я не могу в интерфейсе Builder добавлять прототипы ячеек, как я на своем раскадровке.

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

В Swift 4:

  • Создайте новый класс CocoaTouch, подкласс из UITableViewCell.
  • Важно. Установите флажок . Также создайте файл XIB, который создает файл Swift и файл .xib.
  • Добавьте метки в Xib, как и для прототипа ячейки в раскадровке
  • Подключите выходы метки к новому быстрому файлу
  • Важно - Зарегистрировать файл nib в viewDidLoad

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

    (или)

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