Простое и безопасное создание UITableViewCell

П

Было бы очень здорово найти решение, позволяющее уйти от привычного всем, но громоздкого способа создания UITableViewCell в UITableView, уйти от постоянного использования идентификаторов ячеек при их создании. Ведь с таким громоздким подходом очень просто наделать ошибок, и этот стандартный путь явно идет вразрез с простотой Swift.

Мы можем, допустим, просто использовать имя класса ячейки в качестве ее идентификатора переиспользования (reuse identifier) по умолчанию. Можно создать протокол ReusableViewProtocol, который отвечает за предоставление идентификаторов ячеек.

Когда мы заставляем UITableViewCell соответствовать протоколу DequeuableProtocol, мы получаем уникальный reusable identifier для каждой ячейки подкласса UITableViewCell.

Как правило, вам не нужно реализовывать dequeueIdentifier. Реализация по умолчанию возвратит имя класса ячейки как идентификатор.

Еще одно свойство — dequeueNibName. Если ваша ячейка определяется внутри бандла (а не как прототип ячейки в Storyboard), вы можете зарегистрировать ее в table и использовать.

Заключительная часть этого трюка заключается в обеспечении регистрации dequeue-функции внутри table (такую же технику вы можете использовать и в collectionView).

Теперь, если ваша ячейка определяется внутри Storyboard, вы можете просто вызвать:

Если же ваша ячейка находится внутри Xib:

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

Кстати, раз уж мы пошли в тему упрощения работы с UITableView: у нас есть очень неплохой трюк о том, как вынести UITableViewDataSource в отдельный файл и сильно разгрузить код!

Поддержите ресурс blog.justDev:

Сведения об авторе

Игорь Малеваный

Добавить комментарий

Instagram

Поддержите ресурс blog.justDev:

Свежие записи

Рубрики