【问题标题】:UserInteraction is disabled on animating viewUserInteraction 在动画视图上被禁用
【发布时间】:2021-05-07 04:20:31
【问题描述】:

我有按钮在视图中,当视图动画时按钮由于某种原因被禁用 这是下面的代码,我在选项中有allowUserInteraction,但它什么也没做

    UIView.animate(withDuration: 0.5, delay: 0, options: .allowUserInteraction) {
        view.frame.origin.y = 36
    } completion: { (_) in
        UIView.animate(withDuration: 0.5, delay: 2, options: .allowUserInteraction) {
            view.frame.origin.y = -100
        } completion: { (_) in
           print("completed")
        }

    }

【问题讨论】:

  • 动画吞噬了触摸。您需要在按钮上放置一个轻击手势识别器。即便如此,请记住按钮不在您看到的位置,而是在动画结束时的位置。在这里使用 UIViewPropertyAnimator 会更开心;它会为您处理这一切。
  • 我用 UIPropertyAnimator 制作了完全相同的动画,但遇到了同样的问题...我启用了 isUserInteractionEnabled
  • 如果没有更多代码,我无法解释。您还没有给出我可以尝试的完整示例。但是我已经创建了完整的示例,可以尝试,证明它可以做到并展示如何做到。
  • 我用 Tapgesture 替换了按钮,它起作用了!非常感谢!
  • 请注意,这是我在第一条评论中所说的。

标签: ios swift xcode storyboard


【解决方案1】:

将按钮放在您正在制作动画的视图之外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多