Прототип клетки в перо вместо раскадровки


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

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

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

Спасибо за любую помощь.

2 54

2 ответа:

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

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

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

В Swift 4:

  1. создать новый класс CocoaTouch, подкласс из UITableViewCell.
  2. важно включить флажок 'также создать XIB файл' который создает файл Swift и a .xib file
  3. добавить метки в Xib, как вы бы сделали для прототипа ячейки в раскадровке
  4. подключите выходы этикеток к новому файлу swift
  5. важно -зарегистрироваться файл nib в viewDidLoad

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

    (или)

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