Swift 按钮需要拆下并返回

Swift 按钮需要拆下并返回,swift,Swift,我现在有一个应用程序,如果你点击一个按钮,它就会消失,现在我想让这个按钮消失,即使你没有点击那个按钮,但它会在几秒钟内回来(甚至不到一秒钟)。目前,这是按钮在代码中的外观 @IBAction func increaseCount(button: UIButton) -> Void { button.hidden = true ourScore.text = "\(++score)" let time = dispatch_time(DISPATCH_TI

我现在有一个应用程序,如果你点击一个按钮,它就会消失,现在我想让这个按钮消失,即使你没有点击那个按钮,但它会在几秒钟内回来(甚至不到一秒钟)。目前,这是按钮在代码中的外观

    @IBAction func increaseCount(button: UIButton) -> Void {
    button.hidden = true
    ourScore.text = "\(++score)"


    let time = dispatch_time(DISPATCH_TIME_NOW, Int64(Double((arc4random_uniform(1) + 2)) * Double(NSEC_PER_SEC)))
    dispatch_after(time, dispatch_get_main_queue()) {
        button.hidden = false
    }
}
怎么可能使按钮消失,即使你没有点击它,但它会在几秒钟(不到一秒)回来?时间应在2到半秒之间随机进行。当你点击时,它也会消失,并且会在不到2秒的时间内返回


谁能帮助我?

此代码将使按钮每隔2秒自动出现。您可以修改时间,使其随机(如果您需要帮助,请告诉我)

把你的按钮链接到故事板上,下面的代码就可以了

@IBOutlet weak var button: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    button.hidden = true
    NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "appear:", userInfo: self, repeats: false)
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func appear(timer: NSTimer) {
    self.button.hidden = true
    NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "disappear:", userInfo: self, repeats: false)

}

func disappear(timer: NSTimer) {
    self.button.hidden = false
    NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "appear:", userInfo: self, repeats: false)

}
编辑:要使按钮在单击时消失,请从按钮注册操作事件并使用代码:

@IBAction func clicked(sender: UIButton) {
    self.button.hidden = true
    NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "appear:", userInfo: self, repeats: false)
}
同样,当单击它时,它仅隐藏1秒,但您可以将时间更改为随机时间

编辑2:您应该看到以下内容:


您是否尝试过
UIView
动画?我搜索过UIView动画,但不知道如何具体搜索。那么“当您不点击该按钮时”的触发因素是什么?感谢您的帮助。只有一些问题,按钮应该在屏幕上的第一个,当我启动应用程序时,按钮直到几秒钟才出现。它的工作与消失和回来,只是它没有开始。下一件事是当我点击按钮时,它应该消失,但当我点击按钮时,按钮冻结并返回Xcode到线程1>12 main>“类AppDelegate:UIResponder,UIApplicationLegate{”(AppDelegate)标记为绿色“线程1:信号SIGABRT。我希望您能提供帮助。要使按钮最初出现在屏幕上,请在viewDidLoad()中将button.hidden=true更改为button.hidden=false”。若要使按钮在单击时消失,您应该从按钮中添加一个内部事件,并在其中使用NSTimer。我将更新上面的代码以包含此内容。还要确保您检查了情节提要,并且只有与按钮关联的代码中使用的当前连接。按钮将显示在屏幕上当我启动应用程序时,谢谢。但是当我单击时,我会收到相同的消息。我已经这样做了:我确实用一个动作将同一个按钮连接到代码上,触动了内部事件并编写了其余的代码。通过故事板,按钮的连接是由发送的事件:触动内部->点击查看控制器(黑点)查看控制器按钮(非黑点/无点)并参考插座:按钮->查看控制器(黑点)。希望您能看到错误并提供帮助。代码对我有效,因此我无法真正确定任何内容。我将上载故事板连接的屏幕截图,以便您可以重新检查;检查我的最新编辑。否则,我不确定,抱歉。如果出现这种情况,我可以在github上为您上载应用程序。我确实删除了连接,但不是有必要。但它不起作用。你能给你的项目吗?谢谢。