UIView animateWithDuration: анимация: завершение: применяется преобразование, а не анимация

пытаясь вызвать это сообщение из наблюдения КВО. После загрузки изображения это сообщение отправляется. Сообщение в блоке завершения также содержит анимацию, которая работает правильно (анимирует правильно). Эта анимация применяет преобразование без появления анимации (ожидает длину анимации, а затем просто переходит в конечное состояние).

/** * Discover the subview with the supplied tag, attach the fullsize image to the view * scale to fullsize and begin retract. * @param viewTag int - #FUTURE USE# - The tag of the view to be animated. * @param image UIImage - #FUTURE USE# - The image to be applied to the view. * @return void */ - (void)animateViewWithTag:(int)viewTag andImage:(UIImage *)image { Panel *activePanel = [self.panels objectAtIndex:currentIndex]; UIView *activePanelView = [self.view viewWithTag:activePanel.panelId]; // Display the transition to the fullsize version of the panel image. // Determine the scale that needs to be applied to the view to show // the image in the appropriate scaling. If scaled image is greater than // the size of the screen, find the best fit. float scale = image.size.width / activePanelView.frame.size.width; if (image.size.width > self.view.window.frame.size.width || image.size.height > self.view.window.frame.size.height) { // The image will scale beyond the bounds of the window, scale must be adjusted. scale = self.view.window.frame.size.width / activePanelView.frame.size.width; } CGAffineTransform transform = CGAffineTransformMakeScale(scale, scale); [UIView animateWithDuration:1.0 animations:^{ // Get the fullsize image and display it in the growing panel. [activePanelView setTransform:transform]; [NSThread sleepForTimeInterval:3.0]; } completion:^(BOOL finished) { [self retractImage:activePanelView]; }]; } #pragma mark - KVO - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { int tmpInt = (int)context; UIImage *tmpImage = [change objectForKey:NSKeyValueChangeNewKey]; if ( keyPath == @"imgOriginal" ) { [self animateViewWithTag:[(Panel *)object panelId] andImage:tmpImage]; } } 

  • UIViewController Animation ios?
  • Остановка анимации в ячейке UICollectionView
  • UITextView анимационная смена кадра не оживляет перераспределение текста
  • Анимировать представление в ключевом окне при перетаскивании другого представления с помощью UILongPressGestureRecognizer
  • Отменить анимацию UIView?
  • Анимация UIView против CALayers
  • iOS: полное 360-градусное вращение с использованием блока, а не CABasicAnimation
  • iOS - анимация UIView на iPad, изменение x происхождения и ширины одновременно?
  • One Solution collect form web for “UIView animateWithDuration: анимация: завершение: применяется преобразование, а не анимация”

    Какова цель спящего потока?

    Если вы сделаете сбой основного потока, то он не будет обновлять анимацию тем временем.

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

    Interesting Posts

    Как я могу сделать личный материал типа вне лифта?

    Как автоматически настроить отношения Core Data при использовании вложенных контекстов

    Объекты с базой данных с загрузочными объектами с резервным доступом вызывают NSObjectInaccessibleException

    iPhone Cordova – нажмите на поле ввода показывает и сразу скрывает клавиатуру

    Утечка памяти CMSampleBufferRef

    Как сохранить состояние UICollectionViewCell

    Центр MKMapView неверен

    Как быстро изменить объем ios с помощью UISlider

    Неверная позиция прокрутки с оценкойHeightForRowAtIndexPath

    Преобразование представления таблицы в разделы

    Как создать именованные цвета в интерфейсе Builder?

    Нужно ли мне перестроить старую библиотеку iOS8 Beta (или фреймворк) после выпуска GA?

    Использование iOS 7 для частного API

    Зарегистрируйтесь для сообщений от collabd, таких как XCSBuildService, для получения номера интеграции Xcode Bots

    TableView Cell Пользовательский тип Text Overlaps сам или пуст

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.