Как вы обнаружили, ячейка awakeFromNib
вызывается для ячейки только один раз, хотя потенциально она будет многократно использоваться многократно. Я бы предложил поставить ваш код следующим образом:
В UITableViewCell
или подкласс
- (void)awakeFromNib
Вызывается один раз за всю жизнь клетки.
Поместите код инициализации, который не зависит от содержимого ячейки.
- (void)prepareForReuse
Вызывается, когда ячейка собирается к повторному циклу.
Поместите здесь код очистки, который необходимо вызвать перед повторным использованием ячейки. Обычно вам не нужно это использовать, но вместо этого вы можете поместить код в cellForRowAtIndexPath
. Смотри ниже.
В классе реализации UITableViewDataSource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Вызывается для каждой ячейки, которую хочет отобразить табличное представление.
Поместите здесь код инициализации, который зависит от содержимого ячейки. Я предлагаю вам поставить свой код анимации здесь.