当前位置: 首页 > 知识库问答 >
问题:

每次按下按钮时迅速使背景颜色闪烁或闪烁2种随机颜色

厍光霁
2023-03-14

这款应用目前以黑屏开始,当按下中间的按钮时,它会在每次按下按钮时改变背景颜色。但我希望应用程序闪烁或闪烁2种不同的颜色:而不是只显示一种不闪烁的颜色。

import UIKit

class ViewController: UIViewController {
    let colors: [UIColor] = [
        .systemYellow,
        .systemGreen,
        .systemPurple,
        .systemPink,
        .systemRed,
        .systemBlue,
        .systemOrange,
        .black,.gray
    ]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .clear
    }
    
    @IBAction func didTapButton() {
        UIView.animate(withDuration: 1/12, delay:0, options:[ ], animations: {
            self.view.backgroundColor = self.colors.randomElement()
            self.view.backgroundColor = self.colors.randomElement()
        }, completion: nil)
    }
}

共有1个答案

林华皓
2023-03-14

请在下面尝试

UIView.animate(withDuration: 1.0, delay: 0, options: .curveEaseOut, animations: {
    self.view.backgroundColor = self.colors.randomElement()
}, completion: { finished in
   print("another animation! - 1")
    UIView.animate(withDuration: 1.0, delay: 0, options: .curveEaseOut, animations: {
        self.view.backgroundColor = self.colors.randomElement()
    }, completion: { finished in
      print("another animation! - 2")
    })
})

永远用在下面。

func showColor() {
    UIView.animate(withDuration: 1.0, delay: 0, options: .curveEaseOut, animations: {
        self.view.backgroundColor = self.colors.randomElement()
    }, completion: { finished in
       print("another animation! - 1")
       Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(showColorAgain), userInfo: nil, repeats: false)
    })
}

@objc func showColorAgain() {
    showColor()
}

现在,要使您的逻辑直到下一次单击,您可以在zShowColorAgain`函数中处理它。

 类似资料:
  • 我怎样才能使背景色在每次按下按钮时连续闪现2个新颜色?现在它只显示两种颜色,但它们不会连续闪烁或闪烁。

  • 我有一个JTextField,如果它有无效内容,它就会被清除。我想背景闪烁红色一到两次,以表明用户,这已经发生了。我尝试过: 但它是红色的,时间很短,不可能被看到。有什么提示吗?

  • 问题内容: 我不知道这有可能吗? 但是我想更改光标闪烁的颜色…通常是黑色的.... 我正在做一个基于java-swing的项目,在那…要求之一就是更改光标闪烁的颜色。 … 这可能吗? 问题答案: “光标”用于指不闪烁的鼠标光标。 因此,我假设您正在谈论文本组件中使用的插入符号: 编辑: 以上建议针对一个文本字段执行此操作。要为所有文本字段更改它,您应该能够在程序开始时使用以下命令:

  • 我对改变晶圆厂的背景色有一个问题,似乎晶圆厂后面有另一个背景 这是我的代码 现在唯一有效的解决方案是改变我的应用程序上的颜色口音,但它会影响其他UI元素

  • 这是因为在开发模式下,为了通过 Webpack 实现热加载,CSS代码是打包在 JavaScript 代码中,并动态打到页面中去,从而元素重绘引起了闪烁。 不用担心,在生产模式下,CSS代码会单独打包至独立的文件并置于head标签内,不会出现页面闪烁的现象。

  • 问题内容: 我正在使用计时器制作列表视图,每个计时器都有不同的截止日期,具体取决于数据库(类似于拍卖) 当只有一个实例时,该代码几乎可以完美工作。 但是,当有多个实例同时运行大约4-5个计时器时,就会出现问题 几秒/全部倒计时将开始闪烁,无论是秒,分钟,小时还是天。 例如我的计时器在27d 11h 54m 50s和0d 23h 47m 0s之间闪烁 由于这种情况在模拟器和设备上均会发生,这似乎是我