首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在UIView动画过程中很难允许用户交互

在UIView动画过程中很难允许用户交互
EN

Stack Overflow用户
提问于 2014-08-25 07:01:40
回答 2查看 7.3K关注 0票数 20

我正在努力弄清楚如何让用户在视图被动画时与其进行交互。

情况是这样的:我有一个包含card子视图的UIView cardViewcard是可拖动的磁贴,类似于Tinder中的卡片是可拖动/可滑动的。

我正在尝试通过动画到cardView.alpha = 0来淡出使用animateWithDuration的卡片。从逻辑上讲,这也会淡出所有子视图(card对象)。在这个特定的例子中,我只针对一个card子视图。但是,在动画过程中,我无法拖动/与card交互。

下面是我使用的代码:

代码语言:javascript
复制
UIView.animateWithDuration(
        duration,
        delay: 0,
        options: UIViewAnimationOptions.AllowUserInteraction,
        animations: {self.cardView.alpha = 0}
    ) {
        _ in
        println("Card faded out")
        card.removeFromSuperview()
    }

为什么这个不起作用?任何帮助都将不胜感激。谢谢你!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-03 08:38:40

我通过将alpha设置为0.1而不是0.0修复了此问题。我不确定这是否适用于您的情况,但它显示事件处理代码认为视图是不可见的,即使设置了UIViewAnimationOptionAllowUserInteraction标志也禁用了交互。奇怪的是,将alpha设置为0.01并不起作用,因此有一个可见性阈值,您必须保持高于该阈值。

票数 12
EN

Stack Overflow用户

发布于 2018-09-04 08:13:56

Alpha值为0时出现问题。接近于零的Alpha值将从视图响应器层次结构中删除视图。这里的修复方法是将alpha设置为:

self.cardView.alpha = 0.011

视图仍然不可见,但不会从响应器链中删除。根据我的测试,最小数量如下:

代码语言:javascript
复制
extension CGFloat {

    static let minAlphaForTouchInput: CGFloat = 0.010000001
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25477093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档