gpt4 book ai didi

iphone - 使用 UIView animateWithDuration 进行动画处理时无法触摸 UIButton

转载 作者:IT老高 更新时间:2023-10-28 11:39:46 26 4
gpt4 key购买 nike

我有以下代码:

[UIView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationCurveEaseOut | UIViewAnimationOptionAllowUserInteraction
animations:^{
CGRect r = [btn frame];
r.origin.y -= 40;
[btn setFrame: r];
}
completion:^(BOOL done){
if(done){
[UIView animateWithDuration:0.3
delay:1
options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionAllowUserInteraction
animations:^{
CGRect r = [btn frame];
r.origin.y += 40;
[btn setFrame: r];
}
completion:^(BOOL done){if(done) zombiePopping = 0; }];
}

}];

问题是,即使我使用 UIViewAnimationOptionAllowInteraction,按钮似乎在动画时也没有响应触摸,这对我来说有点奇怪。

也许这主要是通过 Core Animation 来完成的?如果是这样,我会怎么做?

最佳答案

swift 5

就我而言,当我设置 button.alpha = 0 时,按钮交互停止工作,无论我是否将 UIViewAnimationOptionAllowUserInteraction 设置为一个选项。

原因

无论您是否定义动画, View 的属性都会立即应用于 View 的图层。因此,当您设置 view.alpha=0 时,您将完全隐藏 view

解决方案

简单,只需减少 alpha=0.1(甚至是 0.05)

UIView.animate(withDuration: 2,
delay: 0,
options: [.allowUserInteraction, .overrideInheritedOptions, .curveEaseOut, .repeat, .autoreverse],
animations: {
self.button.layer.opacity = 0.01 // 0.0 will make the button unavailable to touch
})

关于iphone - 使用 UIView animateWithDuration 进行动画处理时无法触摸 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com