Мне кажется, что эти два метода класса не являются взаимозаменяемыми.У меня есть подпредставление UIView со следующим кодом в методе touchesBegan:
if (!highlightView) {
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Highlight"]];
self.highlightView = tempImageView;
[tempImageView release];
[self addSubview:highlightView];
}
highlightView.alpha = 0.0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
highlightView.alpha = 1.0;
[UIView commitAnimations];
Когда я касаюсь кнопки, подсветка исчезает, как и следовало ожидать.Когда я подправляю немедленно (до окончания анимации), вызывается мой touchesEnded.Это поведение, которое я хочу.
Но теперь я стал большим поклонником блоков и стараюсь использовать их везде, где это возможно.Таким образом, я заменил код анимации UIView следующим:
[UIView animateWithDuration:0.2 animations:^{
highlightView.alpha = 1.0;
}];
Результаты: выделение по-прежнему затухает, как и ожидалось, но если я коснусь до анимации закончится, мои прикосновения закругляются не позвонить.Если я подправлю после того, как анимация будет завершена, мои прикосновения закругляются , и будет вызван .Что здесь происходит?