2015-07-24 7 views
1

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

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

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

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

Любая помощь очень ценится :)

+0

Создайте протокол, его контроллер представления реализует его и назначается в качестве делегата в ячейке, а затем вызывается метод протокола из ячейки. Пробовали ли вы все это? – Paulw11

+0

[Проверьте ответ здесь, вы должны получить представление о том, делать это:)] [1] [1]: http://stackoverflow.com/questions/31485558/uitextview-and-cell-dynamically -update-height-on-content-of-textview/31486972 # 31486972 –

ответ

0

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

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

+0

Просто из любопытства публикует уведомление, которое вызывает метод, который будет обновлять TableViewCell плохой практикой? Или это просто, что есть несколько способов обновить TableViewCell сделать это – Thomas

+0

Я бы не сказал, что это плохая практика, нет. Иногда вам просто нужно быть прагматичным и выбирать то, что работает для усилий, которые вы готовы потратить. – TomSwift