iphone - 当我在 TouchBegan 内部设置动画时,触摸丢失

标签 iphone ios uiview uitouch uiresponder

我想在屏幕上有 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/

相关文章:

objective-c - 检查是否存在 Objective-C 框架

ios - SwiftUI 中的 anchor

ios - 带有来自传递值的可选 SubView 的 swift UIView 子类

ios - 我的应用被 Apple 拒绝了

iphone - UIImagePickerController 奇怪的效果

ios - 使用 wifi 和 3G 给出两点之间的不同距离

ios - 无法关闭 JSONkit 的 ARC

iphone - 在我的 iPhone 的 Python 解释器上安装 Python Imaging Library

ios - 单击“查看”后的动画

javascript - 如何控制UIWebView的javascript