gpt4 book ai didi

swift - 更改 UIButton alpha 然后无法识别点击

转载 作者:行者123 更新时间:2023-11-30 12:30:14 25 4
gpt4 key购买 nike

我设置了一个非常像 youtube 的界面,如果用户按下 UIView,我将隐藏或显示带有动画的所有 subview 。

func setupControlViewVisiblity(playingVideo: Bool = false, duration: TimeInterval = 1.0, isExpanded: Bool = false){
var alpha:CGFloat = 1

if isShowingControls {
//If we're showing then we're about to hide everything so alpha is 0
alpha = 0
}


UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {

self.pausePlayButton.alpha = alpha
self.backButton.alpha = alpha
self.infoLabel.alpha = alpha
self.fullScreenButton.alpha = alpha
self.currentTimeLabel.alpha = alpha
self.videoLengthLabel.alpha = alpha
self.videoSlider.alpha = alpha

}, completion:nil)

isShowingControls = !isShowingControls
}

我遇到的问题是,如果我调用此方法并显示控件(isShowingControls 为 true),我的 UIButtons 将无法识别第一次点击。这实际上仅在 View alpha 从 0 变为 1 时发生,然后我尝试点击按钮。

我尝试在主队列上执行动画...不起作用。如果我将 alpha 从 0 更改为 1...等待几秒钟...然后点击按钮...它可以工作。如何让它在 UIButtons alpha 更改后立即工作?

谢谢

编辑:我想这与动画持续时间有关,因为当我将其切换到 0.2 时它就可以工作。我怎样才能将其保持在较高的水平并使其发挥作用?

最佳答案

默认情况下,UIVIew 动画在动画制作时不允许用户交互。

幸运的是,有一个动画选项allowUserInteraction。没有更多信息,但您可以在文档 here 中看到它。还值得检查所有选项 here .

试试这个:

UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: [.curveEaseOut, .allowUserInteraction], animations: {

// Update the views

}, completion:nil)

关于swift - 更改 UIButton alpha 然后无法识别点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43646994/

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