2016-08-20 4 views
0

Я пытаюсь решить эту проблему самым точным способом.Используйте UISlider для получения целочисленного значения в диапазоне

У меня есть UISlider, а диапазон между 0 to 300 (все простые числа).

Как я могу, используя UISlider, получить точный доступ к каждому простому номеру в этом диапазоне при перемещении ползунка? Есть предположения?

ответ

3

Магазин первые 0-300 простые числа в массиве

плохой способ сделать это. Установить ползунок мин до 0, а не более 300, а ток до 0

При перемещении проверки ползунка, если число слайдера существует в массиве, если он делает, обновить текст лейбла с простым числом

let primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293] 

@IBOutlet weak var label: UILabel! 
@IBAction func slider(sender: UISlider) { 
    let sliderNumber = Int(sender.value) 
    if primes.contains(sliderNumber) { 
     label.text = "\(sliderNumber)" 
    } 
} 

Хороший способ сделать это. Установите ползунок мин до 0 и максимум до 61, а ток равен 0. В первом 0-300 имеется 62 простых числа. При перемещении ползунка измените текст метки, индексируя массив простых чисел.

let primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293] 

@IBOutlet weak var label: UILabel! 
@IBAction func slider(sender: UISlider) { 
    let sliderNumber = Int(sender.value) 
    label.text = String(primes[sliderNumber]) 
} 

испытывали и первый, и эта вторая реализация, а второй является гораздо чище на переходе значения.

+1

Спасибо! Очень ценю это :) –