【问题标题】:View Animation is not working more than once视图动画不工作不止一次
【发布时间】:2012-12-21 11:18:10
【问题描述】:

我想在完成一个动画后开始一个动画,为此我在 touchesBegan 函数中实现了以下代码

if(touch.view==word1)
{


    [UIImageView animateWithDuration:0.6f
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{

                         word1.alpha=1;                    


                     }
                     completion:^(BOOL finished){
                         if (finished) {
                             word1.alpha=0;
                         }
                     }];


}

第一次触摸时它正在工作,当我再次触摸它时它根本不起作用。谁能告诉我我做错了什么。

任何帮助将不胜感激。

【问题讨论】:

  • 不明白。您想在再次触摸它时启动动画还是在其他动画完成时启动动画?如果要淡出,则必须重复整个动画块...。设置 word1.alpha = 0 不会对其进行动画处理...
  • 罗恩是正确的。您将不得不在完成块内制作另一个动画。
  • @Ron 我想在我再次触摸它时启动相同的动画。
  • 检查下面的答案。应该就是这样。

标签: objective-c ios xcode uiviewanimation


【解决方案1】:

alpha 为 0 的视图(在动画之后) 不响应用户交互并将这些事件传递给底层视图;)

【讨论】:

  • 那么我该怎么做才能解决这个问题。
  • 我认为只有当 setHidden 属性设置为 true 时才会出现这种情况。对于 alpha = 0,它只是不可见但存在并且会响应用户交互。
  • 不,alpha = 0 视图也被忽略。 iOS 内部调用函数 hitTest:withEvent: 来找出应该处理触摸事件的视图。这是文档的一小段摘录;)“此方法会忽略隐藏的、禁用用户交互或 alpha 级别小于 0.01 的视图对象。”
  • 所以要解决这个问题,我们首先需要知道为什么你在触摸时隐藏视图......用第二次触摸再次显示它对用户来说不是很直观......一种方法围绕它的方法是将背景色设置为 [UIColor clearColor]
【解决方案2】:

当您将 alpha 设置为 0 时,还将 userinteraction 设置为 FALSE

希望对你有帮助

【讨论】:

    【解决方案3】:

    如果你正在显示一个图像,你可以让你的图像成为 UIView 的子视图,就像 Infinite 所说的你可以将背景颜色设置为 clearColor,并使用 UIView 进行触摸事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多