кто может подсказать, как сделать так, чтобы правильный ответ случайным образом появлялся в одной из 3 кнопок. сейчас по умолчанию в первой кнопке.
Рандомизация Button.textlabel
Функция так есть, она работает.
extension Int {
var rnd: Int { return Int(arc4random_uniform(UInt32( self ))) }
}
extension Bool {
static var rnd: Bool { return arc4random_uniform(2) == 0 }
mutating func toggle() {
self = ! self
}
}
Но мне надо рандомно разместить имя кнопки на 1 из 3 кнопок. Не знаю откуда копать.
Мне кажется вы немного намудрили, я так понимаю слова берутся из какой то базы, следовательно вам поступают сразу три слова, почему бы не юзать обычный switch
например:
switch Int.random(in: 0…2) {
case 0:
// кидаешь правильный ответ в верхнюю кнопку
case 1:
// кидаешь в среднюю кнопку
case 2:
// кидаешь в нижнюю
}
Возможно, я недопонял вашу проблему)
Можете создать массив, перемешать его и пройтись по сабскрипту:
let verbs = [verb.translate, roundedVerb().translate, roundedVerb().translate].shuffled()
answerA.setTitle(verbs[0], for: .normal)
и так далее.
Уже есть “из коробки”, начиная с 4.2. Как и рандом.