ios - 通过更改 alpha swift iOS 启用用户交互

标签 ios swift animation alpha user-interaction

我有一个带有点击功能的 View (启用了用户交互)。如果我在不改变 alpha 的情况下设置它,它会很好地工作。但是,如果我尝试延迟更改此 View 的 alpha,则无法在此动画期间点击它。有人可以帮忙吗?

这是我的代码:

import UIKit

class ViewController: UIViewController {

var myView = UIView()
var n = 0

override func viewDidLoad() {
    super.viewDidLoad()

    setView()
    changeAlpha()

}

func changeAlpha() {

        UIView.animate(withDuration: 5) {
            self.myView.alpha = 0.1
        }
    }

func setView() {

    let size = view.frame.width
    myView = UIView(frame: CGRect(x: 0, y: 0, width: size/3, height: size/3))
    myView.center = view.center
    myView.backgroundColor = UIColor.red
    view.addSubview(myView)

    myView.isUserInteractionEnabled = true
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(gameObjectTapped(_:)))
    myView.addGestureRecognizer(tapGestureRecognizer)

}

@objc func gameObjectTapped(_ recognizer:UITapGestureRecognizer) {

    print("# tap \(n)")
    n+=1

}

最佳答案

使用选项 .allowUserInteraction 运行动画:

UIView.animate(withDuration: 5, delay: 0, options: [.allowUserInteraction], animations: {
    self.myView.alpha = 0.1
}, completion: nil)

关于ios - 通过更改 alpha swift iOS 启用用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48559553/

相关文章:

objective-c - iOS/Objective-C 的动画/过渡创建器?

javascript - Raphael JS 将一组图纸作为一个移动/旋转?

ios - UIDocumentInteractionController 禁止在某些应用程序中打开

ios - 指定初始化程序?

ios - CoreImage/CoreVideo 中的内存泄漏

ios - 如何访问自定义 CollectionView 单元格的初始值设定项?

ios - 单元测试 iOS 应用程序扩展

ios - 为什么 weak_table_t 在 Objective-C 运行时是 SideTable 的成员?

ios - 自定义选择器可以访问选项值,而不仅仅是选定的索引

ios - 动画 UIView 离开屏幕然后从底部无休止地离开屏幕