Перезагрузите TableView из Custom TableViewCell

Как я могу перезагрузить TableView, используя делегирование из моего класса CustomTableViewCell?

В настоящее время я делаю это, вызывая это:

NSNotificationCenter.defaultCenter().postNotificationName(UIContentSizeCategoryDidChangeNotification, object: nil)

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

Любая помощь приветствуется :)


person Thomas    schedule 24.07.2015    source источник
comment
Создайте протокол, пусть ваш контроллер представления реализует его и установит себя в качестве делегата в ячейке, а затем вызовет метод протокола из ячейки. Вы пробовали что-либо из этого?   -  person Paulw11    schedule 25.07.2015
comment
[Проверьте ответ здесь, вы должны понять, как это сделать :)] [1] [1]: stackoverflow.com/questions/31485558/   -  person Aditya Koukuntla    schedule 25.07.2015


Ответы (1)


Как предлагает @Paulw11 в своем комментарии, вы можете реализовать шаблон делегата для обратного вызова из вашего пользовательского UITableViewCell в контроллер. Будьте осторожны, чтобы не создавать циклические ссылки (используйте слабые свойства!)

Вы также можете рассчитывать на тот факт, что UITableViewCell является дочерним элементом UITableView. То есть, если вам нужно добраться до UITableView (по сравнению с вашим контроллером), вы можете пройти по цепочке супервизора, пока не найдете его.

person TomSwift    schedule 24.07.2015
comment
Просто из любопытства, является ли публикация уведомления, вызывающего метод, который обновит TableViewCell, плохой практикой? Или просто есть несколько способов обновить TableViewCell, сделайте это - person Thomas; 03.08.2015
comment
Я бы не сказал, что это плохая практика, нет. Иногда вам просто нужно быть прагматичным и выбирать то, что работает за те усилия, которые вы готовы потратить. - person TomSwift; 03.08.2015