Метка UITableViewCell отображается с небольшой слайд-анимацией

Я показываю список лиц в таблицеView. При нажатии любой из ячеек приложение отображает новый экран. Когда пользователь возвращается к предыдущему экрану, должен появиться tableView. Здесь, когда пользователь возвращается к экрану с помощью tableView, я вызываю API-интерфейс сервера, чтобы получить обновленный список людей и перезагрузить таблицу, чтобы отобразить их.

Проблема заключается в том, что пользователь возвращается к экрану и отображается таблицаView, метка в UITableViewCell немного анимируется. Эта анимация такова, что ярлык перемещается из некоторого места ниже его правильного положения и анимации вверх в правильное положение. Эта анимация не реализована мной, и я не хочу этого. Его видимое около 0,5-1 с.

Сравните нижнюю позицию надписи до и после анимации.

enter image description hereenter image description here

Кто-нибудь испытал это?

Примечание: Обратите внимание, что я использовал автозапуск. Это может быть проблемой, поскольку перед использованием автозапуска этой проблемы не было.

Изменить: Пробовал отключить неявную анимацию, как показано ниже, но не работает.

NSMutableDictionary *newActions = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSNull null], @"onOrderIn",
                                   [NSNull null], @"onOrderOut",
                                   [NSNull null], @"sublayers",
                                   [NSNull null], @"contents",
                                   [NSNull null], @"bounds",
                                   nil];
cell.textLabel.layer.actions = newActions;
cell.detailTextLabel.layer.actions = newActions;
cell.layer.actions = newActions;
cell.contentView.layer.actions = newActions;
4b9b3361

Решил проблему. Извините, что беспокою вас, ребята. Это было так глупо. Я обновлял таблицу, когда пользователь возвращается из следующего контроллера представления, вызывая REST API, а затем вызывая метод displayTable, который отображает таблицу снизу. Теперь я вызываю метод reloadData, чтобы обновить его, если он уже отображается, вместо вызова displayTable.

1
ответ дан 08 февр. '14 в 11:44
источник