gpt4 book ai didi

ios - Swift - 如何运行多个计时器?

转载 作者:行者123 更新时间:2023-11-29 01:20:53 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个 View ,我希望每次在 8 秒后显示该 View 时将其关闭。为了做到这一点,我在 View 创建函数中创建了一个计时器,它在触发后隐藏 View 。有用。但在某些情况下,我想呈现 View 的两个副本,我希望在创建 View +8 秒后将两者都忽略。问题是计时器只能工作一次 - 它隐藏 View 的一个副本,第二个保留在屏幕上

我的代码是

 func presentShowStatusShort(text text:String) {

pointsShort = NSBundle.mainBundle().loadNibNamed("helperShowStatusShort", owner: self, options: nil).first! as! helperShowStatusShort
pointsShort?.frame.size.width = self.view.bounds.width

if pointsShortOnScreen {

pointsShort!.frame.origin.y = pointsShort!.frame.origin.y + 39

}

pointsShort?.text.text = "\(text.uppercaseString)"
pointsShort!.dismissButton.addTarget(self, action: "dismissShowStatusShort", forControlEvents: UIControlEvents.TouchUpInside)

var timer = NSTimer.scheduledTimerWithTimeInterval(8, target: self, selector: "dismissShowStatusShort", userInfo: nil, repeats: false)

pointsShortOnScreen = true

view.addSubview(pointsShort!)

}

func dismissShowStatusShort() {

pointsShortOnScreen = false

UIView.animateWithDuration(0.5, animations: {

self.pointsShort?.frame.origin.y = (self.pointsShort?.frame.origin.y)! - 64

}, completion: {
finished in

self.pointsShort?.removeFromSuperview()
})


}

最佳答案

从 OOP 的角度来看,您应该创建一个类来帮助您完成此操作。该类将拥有计时器并维护对 View 的引用。当计时器到期时,它会调用回调,将自身作为参数传递,这样 Controller 就可以获得关联的 View 并将其关闭。

此类的所有实例都将存储在 Controller 上的数组实例变量中,因此您可以添加多个实例并在其过期后删除每个实例。

关于ios - Swift - 如何运行多个计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615067/

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