У меня есть анимация UIView, так что она сжимается, когда пользователь прикасается к кнопке переключения, и она снова расширяется до первоначального размера, когда пользователь снова прикасается к кнопке. Пока все работает отлично. Проблема в том, что анимация занимает некоторое время - например. 3 секунды. В течение этого времени я все еще хочу, чтобы пользователь мог взаимодействовать с интерфейсом. Поэтому, когда пользователь снова прикасается к кнопке во время анимации, анимация должна останавливаться прямо там, где она есть, и наоборот.
В Apple Q & Как я нашел способ немедленно приостановить все анимации:
https://developer.apple.com/library/ios/#qa/qa2009/qa1673.html
Но я не вижу способа отменить анимацию отсюда (и опустить оставшуюся часть начальной анимации). Как это сделать?
- (IBAction)toggleMeter:(id)sender {
if (self.myView.hidden) {
self.myView.hidden = NO;
[UIView animateWithDuration:3 animations:^{
self.myView.transform = expandMatrix;
} completion:nil];
} else {
[UIView animateWithDuration:3 animations:^{
self.myView.transform = shrinkMatrix;
} completion:^(BOOL finished) {
self.myView.hidden = YES;
}];
}
}