如何在两秒后关闭代码中的视图

How to dismiss a view in code after two seconds

我有一个包含多个 UIIMage 的 UICOllectionView(不使用故事板)。当用户点击一个图像时,一个视图被放置在特定的 UIImage 中,其中包含用户的信息。我希望这个视图在 2 秒后自动删除它。有人可以给我一个如何实现这一目标的例子。我没有找到任何解决方案。我知道我可以通过说 View.removeFromSuperView() 很容易地驳回一个观点。有人可以做一个简短的例子吗

谢谢

您可以使用 Grand Central Dispatch 在 2 秒后执行一段代码

DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
    // code to remove your view
}

试试这个:

let viewss = UIView()

在 ViewDidLoad

Timer.scheduledTimer(withTimeInterval: 2, repeats: false) { (timer) in
            self.viewss.isHidden = true
        }

您可以创建一个在内部使用 Swift 3 GCD asyncAfter 函数的 performAfter 函数,例如

func performAfter(delay: TimeInterval, completion: @escaping () -> Void) {
    DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
        completion()
    }
}

并使用

performAfter(delay: 2) {
   print("task to be done")
}