Как использовать одну и ту же ячейку таблицы для двух разных таблиц? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть два представления таблицы, отображаемые в контроллере вкладок.Один показывает контент, отфильтрованный по популярности, другой по времени (последний).Оба имеют одинаковое расположение ячеек, и в настоящее время код дублируется.Как сделать ячейку общей для обоих UITableViewController?Мой общий класс - ContentViewCell, но я не уверен, как связать IBOutlets с обоими классами в раскадровке.

class ContentViewCell: UITableViewCell {
    @IBOutlet weak var title: UILabel!
    @IBOutlet weak var body: UILabel!
    @IBOutlet weak var author: UILabel!
    @IBOutlet weak var tag: UILabel!
    // ..
}

В настоящее время у меня есть LatestTableViewController с

class LatestViewCell: UITableViewCell {
    @IBOutlet weak var latestTitle: UILabel!
    @IBOutlet weak var latestBody: UILabel!
    @IBOutlet weak var latestAuthor: UILabel!
    @IBOutlet weak var latestTag: UILabel!
    // ..
}

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Да, вы можете назначить ContentViewCell для нескольких UITableViewController, если IBOutlet одинаково для обоих.

Все, что вам нужно сделать, - это назначить один и тот же класс обеим ячейкам и снова подключить IBOutlet к вновь назначенной ячейке.И он будет работать для обоих.

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

0 голосов
/ 20 февраля 2019

Вы можете использовать один и тот же UITableViewCell в разных UIViewController.Вы должны использовать метод ниже в методе источника данных cellForRowAt indexPath UITableView.

func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell

пример:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "ContentViewCell",for: indexPath) as! ContentViewCell
        //Set you cell here

    return cell
    }
0 голосов
/ 20 февраля 2019

используйте XIB для tableView Cell и используйте его в любом месте проекта.

http://ios -tutorial.com / custom-uitableviewcell-xib-swift-3 /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...