Я думаю, что я делал это неправильно в течение последних полутора лет моего опыта разработки iPhone ... Я мог бы использовать некоторые знающие разъяснения, пожалуйста!
Как вы можете знать, а может и не знать, свойства UIView можно легко анимировать с помощью метода beginAnimations:forContext:
, а затем обернуть его вызовом commitAnimations
.
Вы также можете настроить делегата анимации для выполнения действий при возникновении определенных частей анимации, таких как запуск, окончание и т. Д.
Я давно использую анимацию UIView в своем коде, и у меня никогда не было серьезных проблем, но я только что натолкнулся на раздел документов, который я, должно быть, пропустил.
Документация для setAnimationDidStopSelector:
UIView гласит, что любой селектор, передаваемый в этот метод, должен иметь вид:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
Я вообще этого не делал. Я устанавливал простые старые селекторы типа doThis
и doThat
, которые не принимают параметров.
Допустимо ли то, что я делаю? Должен ли я переписать весь свой код для использования документированной формы? Или эта форма просто для удобства, если мне нужно знать, завершена ли анимация перед тем, как она остановлена, или необходимо передать некоторые специфические для контекста данные в метод?