У меня есть UICollectionView, содержащий несколько ячеек, содержащих представления, которые могут перетаскивать/выходить из представления коллекции в другое представление, находящееся за пределами представления коллекции. Этот процесс работает нормально. Однако, когда перетаскиваемый вид заносится в новое местоположение, я хочу анимировать падение, масштабируя представление перетаскивания до его полного размера, а затем обратно до нуля, прежде чем удалять его из супервизора. Это работает в других областях приложения, когда я перетаскиваю другие объекты вокруг, но это единственное, что связано с представлением коллекции.iOS Animation Block Gesture Recognizer
[UIView animateWithDuration:0.375
animations:^{ dragView.transform = CGAffineTransformMakeScale (1.0f, 1.0f); dragView.transform = CGAffineTransformMakeScale(0.0f, 0.0f); }
completion:^(BOOL finished) { [dragView removeFromSuperview]; } ];
Если я не использую блок завершения, анимация не работает, по-видимому, потому, что представление удаляется до завершения анимации. Но если я использую блок завершения, когда анимация завершается, последующие жесты панорамы (используемые для прокрутки представления коллекции) передаются на распознаватель жестов, используемый в моем контроллере представления для других вещей, а не для прокрутки представления коллекции. В результате после анимации изображение коллекции «заперлось». Если я удалю блок завершения, проблема с распознаванием жестов не произойдет после этого, но анимация тоже не работает.
Я попытался установить userInteractionEnabled = YES в представлении коллекции после анимации, но это не помогает.
Любые предложения? TIA
Спасибо за предложение. Просто попробовал, и результат тот же. Анимация работает, но проблема с распознавателем жестов сохраняется. Спасибо за эту идею. – RegularExpression
также вы можете попробовать метод performSelector: withBlock: afterDelay: – user2159978