4

Вопрос по ios, objective-c, uitableview, autolayout – UITableViewCell метка отображается с небольшой анимацией вверх

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

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

Сравните положение под ярлыком до и после анимации.

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

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

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

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;

@JackWu попробовал. Не работал.

от Geek

@Geek Внутри "NewActions" добавьте две строки для @ "position" и @ "center"

от Jack

@JackWu Не работает. Попробовал как добавлено в отредактированный вопрос

от Geek

Может быть, вы можете попробовать отключить неявные анимации метки. Посмотреть здесьstackoverflow.com/questions/2244147/...

от Jack
1 ответ
1

Решил вопрос. Извините

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

Похожие вопросы