UIView animateWithDuration UITableView приводит к тому, что UITableViewCell тоже оживляет анимацию

Я пытаюсь изменить изменение высоты UITableView с помощью + transitionWithView:duration:options:animations:completion: Когда параметры установлены, UIView UIView UITableViewCell contentView также оживляет. Эффект подобен ниже. Как вы можете видеть, камера под окном поднимается, а границы красной точки ожидают предопределенного ограничения. Если я не настрою параметры анимации, это будет не так. Но мне нужна анимация, когда я изменяю высоту UITableView. Итак, как сохранить анимацию высоты представления таблицы и отключить анимацию подвидного представления cellview viewView? Код ниже. Красная точка – это UIView с красным цветом фона. Есть ли способ отключить анимацию subview UITableViewCell contentView?

 - (void)changeTableViewHeight { self.tableViewTopVerticalSpaceConstraint.constant = 0; [self.tableView setNeedsUpdateConstraints]; [self.view setNeedsUpdateConstraints]; [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ [self.view layoutIfNeeded]; } completion:^(BOOL finished) { self.topViewHeightConstraint.constant = 50; [self.topView setNeedsUpdateConstraints]; }]; } 

анимация

3 Solutions collect form web for “UIView animateWithDuration UITableView приводит к тому, что UITableViewCell тоже оживляет анимацию”

 //1. All constraints change must be done self.hightConstraint.constant = 200; self.anotherConstraint.constant = 34; ... ... // 2. Indimate to iOS that this view need update constraints. // Hey iOS I have modified few constraints. beware of it to layout that changes. [self.view setNeedsUpdateConstraints]; // 3. I'm done, relayout the view with animation, If I really changed any constraints to view. [UIView animateWithDuration:1.5 animations:^{ [self.view layoutIfNeeded]; }]; 

Надеюсь, кто-то сэкономит время

Имел аналогичную проблему, которую я решил с отключением анимации для слоя представления, который я не хотел анимировать. В вашем случае … awakeFromNib метод awakeFromNib для вашего подкласса UITableViewCell и отключите анимацию там. В вашем случае что-то вроде …

 override func awakeFromNib() { super.awakeFromNib() redCircleView.layer.removeAllAnimations() } 

Дело в том, что UIView.animateWithDuration анимирует слои представлений, а для новых ячеек представления таблиц и других представлений, созданных во время или из-за этой анимации, все изменения также будут анимированы.

… РЕДАКТИРОВАТЬ …

Тем временем мне удалось найти еще лучшее решение. В параметре параметров для UIView.animateWithDuration используйте параметр UIViewAnimationOptionLayoutSubviews (или .LayoutSubviews in Swift). Это отображает подпункты во время фиксации анимации.

код обновления

 - (void)changeTableViewHeight { self.tableViewTopVerticalSpaceConstraint.constant = 0; self.topViewHeightConstraint.constant = 50; [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ [self.view layoutIfNeeded]; } completion:^(BOOL finished) { [self.topView setNeedsUpdateConstraints]; }]; } 
  • Обнаружение данных в UITextView в UITableViewCell
  • Как создать макет, например, Featured page в App Store?
  • Пользовательский UITableViewCell от XIB: ширина содержимогоView всегда одинакова
  • Цвет текста CATextLayer всегда черный
  • Сепараторные линии для ячеек UITableViewCellStyleSubtitle не принимают полную ширину
  • Вычисление содержимого Размер таблицы просмотра с динамическим увеличением ячейки
  • iPhone UITableView. Как включить единый буквенный список, такой как Music App?
  • Сбой при использовании resizableImageWithCapInsets: UIEdgeInsetsMake
  • Как подклассировать пользовательский класс Cell с помощью xib в swift
  • Слайдовая ячейка представления таблицы с действием по умолчанию
  • Подкласс UITableViewCell
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.