【问题标题】:User interaction with uiview and animation completion blocks用户与 uiview 和动画完成块的交互
【发布时间】:2011-07-08 01:30:09
【问题描述】:

我有以下代码:

[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction
     animations:^{
         imageView.bounds = endBounds;
     }
     completion:^(BOOL finished) {
         [UIView animateWithDuration:2.0 delay:0.5 options:UIViewAnimationOptionAllowUserInteraction
              animations:^{
                  imageView.bounds = startBounds;
              }
              completion:^(BOOL finished) {
                      [imageView removeFromSuperview];
              }];
     }];

另外我还有:

[imageView setUserInteractionEnabled:YES];

还有一个点击手势识别器集,将处理用户在 imageView 上的点击。当第一个动画发生时,手势识别器会按我的预期触发。但是,如果我尝试在完成块的链接动画期间点击 imageView,即使我设置了适当的选项,也不会发生任何事情。

有人有什么想法吗?我用谷歌搜索了,找不到答案。

【问题讨论】:

  • 抱歉代码格式不佳...
  • 欢迎来到 SO。我在您的问题中添加了 iphone 标签(如果我错了,请修复它),将来尝试首先放置描述平台和编程语言的标签,然后放在一些特定的标签之后
  • 感谢编辑!非常感谢。

标签: iphone animation uiview gesture completion-block


【解决方案1】:

如果你使用:你会看到相同的行为:

+ [UIView setAnimationDidStopSelector:]

而不是使用块?

【讨论】:

  • 我没试过。那是老风格吧?这是我第一次涉足 iPhone 开发,我想我会先用积木尝试推荐的方法。我可以稍后再试。
  • 顺便说一句,我应该提到startBounds 是第一次加载图像时的原始矩形,endBounds 具有相同的尺寸,除了高度为 0(因此图像消失)。是否有可能在完成后,sdk 看到一个高度为 0 的边界框,假设图像不再可见并禁用所有用户交互?
  • 更新:同样的行为发生了——没有手势被触发。
【解决方案2】:

我想出了一个解决方案:

我将 UIImageView 包装在 UIView 中(我是 UIView 的子类),其边界/中心点与图像相同。然后我将手势识别器附加到包装器上,而不是图像上。因为包装器的边界矩形/中心点在动画期间永远不会改变,所以它始终可以用作手势的目标。

这很好用。

-j

【讨论】:

  • 这是目前唯一的解决方案。我正在使用 UIViewPropertyAnimator 并在使用附加的手势识别器为视图设置动画后,由于某种原因它失去了它的手势识别器。唯一的解决方法是将要设置动画的视图放在容器视图中,然后将手势识别器添加到该容器视图中。然后为视图(而不是容器视图)设置动画。
【解决方案3】:

使用新的动画块时,如果您希望在动画期间启用用户交互,则必须在选项掩码中进行设置。例如:

[UIView animateWithDuration:1.0 
                      delay:0 
                    options:UIViewAnimationOptionAllowUserInteraction 
                 animations:^{ myView.alpha = 0.5; } 
                 completion:NULL];

【讨论】:

  • 延迟不为0时,无法接收触摸。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 2014-09-16
相关资源
最近更新 更多