сделать кнопки изменить цвета в быстром - PullRequest
0 голосов
/ 11 мая 2018

Кто-нибудь знает, как заставить кнопки менять цвета в swift? У меня есть прямоугольные кнопки с текстом внутри и пустым фоном, и я хочу, чтобы пустое пространство меняло цвет каждые 3 секунды или около того. Может кто-нибудь помочь, я был бы очень признателен!

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Расширение ответа @ Sh_Khan путем генерации случайных цветов вместо массива цветов. Надеюсь, это поможет:

Генерация случайных цветов

var counter = 0
var pageChangeTimer: Timer?

pageChangeTimer = Timer.scheduledTimer( withTimeInterval: 3.0 , repeats: true) { [weak self] timer in 

   if counter == colors.count {
      counter = 0
   }
   self.btn.backgroundColor = colors[counter]  
   counter += 1      
}


func getRandomColor() -> UIColor{
    //Generate between 0 to 1
    let red:CGFloat = CGFloat(drand48())   
    let green:CGFloat = CGFloat(drand48()) 
    let blue:CGFloat = CGFloat(drand48())  

    return UIColor(red:red, green: green, blue: blue, alpha: 1.0)
}
0 голосов
/ 11 мая 2018

Попробуйте это

var net = Bool()

override func viewDidLoad() {
    super.viewDidLoad()
    net = true
    var timer = Timer.scheduledTimer(timeInterval: 0.3, target: self, selector: #selector(self.update), userInfo: nil, repeats: true)

}

// метод обновления

@objc func update() {
// Something cool
if net == true {
    // changebtn is the outlet of UIButton
    changebtn.backgroundColor = UIColor.blue
    net = false
}else{
    changebtn.backgroundColor = UIColor.black
    net = true
}
}
0 голосов
/ 11 мая 2018

Можете ли вы попробовать

 var counter = 0
 var pageChangeTimer: Timer?
 let colors = [UIColor.red,UIColor.green,,,,,,,,,] //,,,, set more

 pageChangeTimer = Timer.scheduledTimer( withTimeInterval: 3.0 , repeats: true) { [weak self] timer in 

    if counter == colors.count {
       counter = 0
    }
     self.btn.backgroundColor = colors[counter]  
    counter += 1      

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...