#ios #swift #uislider
#iOS #swift #uislider
Вопрос:
Мне было интересно, как округлить значение UISilder до значения int. Прямо сейчас он отображает значения с плавающей запятой. На данный момент я использую swift 3.
@IBOutlet var slidermove: UISlider!
@IBAction func SliderVal(_ sender: AnyObject) {
print(slidermove)
let x = round(slidermove)
}
round() не работает, выдает ошибку, спасибо всем, кто помогает
Ответ №1:
Вы должны округлить его значение вместо самого UISlider.:
let x = roundf(slider.value) // x is Float
Если вам нужно Int
вместо Float
, просто оберните его Int initializer:
let x = Int(round(slider.value)) // x is Int
Комментарии:
1. Спасибо, Алекс, за вашу помощь, это сработало!. Но как мне избавиться от этой последней десятичной точки. например, от 10.0 до 10
2. @Puneet Добро пожаловать. Взгляните на обновленный ответ.
Ответ №2:
Чтобы округлить a Float
до ближайшего целого числа и получить результат в виде an Int
, можно использовать (возможно, не столь известную) функцию lrintf()
. Пример:
let x = Float(12.6)
let i = lrintf(x)
print(i) // 13
В вашем случае:
let i = lrintf(slider.value) // `i` is an `Int`
Комментарии:
1. Спасибо, Мартин Р.
2. @Puneet: Произошла ошибка, потому что значение ползунка является плавающим, а не двойным. Теперь это исправлено.