В моем приложении есть анимация, которая увеличивает UIImageView, а затем сжимает его (на самом деле две анимации).Во всем приложении это может происходить на нескольких различных UIImageViews.Я нашел способ сделать это, который работал очень хорошо, но теперь он не совместим с автоматическим подсчетом ссылок.Вот мой код:
[UIView beginAnimations:@"growImage" context:imageName];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDelegate:self];
imageName.transform = CGAffineTransformMakeScale(1.2, 1.2);
[UIView commitAnimations];
, а затем:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(UIImageView *)context {
if (animationID == @"growImage") {
[UIView beginAnimations:@"shrinkImage" context:context];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDelegate:self];
context.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView commitAnimations];
}
}
Это работало отлично, и я был очень доволен этим, пока не попытался преобразовать свой проект в ARC.Теперь я получаю сообщение об ошибке «Неявное преобразование указателя Objective C в 'void *' запрещено ARC» в этих строках, в которых я пытаюсь передать UIImageView в качестве контекста для анимации:
[UIView beginAnimations:@"growImage" context:imageName];
[UIView beginAnimations:@"shrinkImage" context:context];
Кто-нибудь знает другой способ, которым я могу предупредить функцию animationDidStop, для которой UIImageView, с которой я хочу работать, будет совместим с ARC?
Заранее большое спасибо!