我想在屏幕上有 4 个 UIView,并在触摸时为其背景颜色设置动画,并在触摸结束时将其更改回来。
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
[UIView animateWithDuration:0.1
animations:^{
self.backgroundColor = altColor;
}];
}
不幸的是,当我在touchesBegan中执行此动画时,除非动画完成后触摸结束,否则touchesEnded不会触发。这意味着在动画过程中,touchesEnded 会丢失触摸。
此外,快速点击 UIView 不会导致多次 TouchBegan 调用。在动画(在第一次触摸中生成)完成之前,似乎不会收到新的触摸。
如何用动画响应所有触摸?我实际上希望每次新的触摸都会中断之前的动画......并重新开始。
最佳答案
看起来我需要在 block 动画上设置一个选项
options:UIViewAnimationOptionAllowUserInteraction
关于iphone - 当我在 TouchBegan 内部设置动画时,触摸丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212086/