RangeSlider для указания диапазона высот (в футах и ​​дюймах) с использованием NumberFormatter

Я использую RangeSlider, который является типом UIControl:

https://github.com/WorldDownTown/RangeSeekSlider

У него есть свойство, называемое numberFormatter. Я хочу дать ползунку минимальное и максимальное значение, скажем, в дюймах (minValue = 48 дюймов, maxValue = 96 дюймов).... и он должен отображать высоту ползунка в таком формате:

48 (дюймы) будут отформатированы как строка "4'0''", т.е. 4 фута 0 дюймов

49 дюймов -> "4'1"

... 74 дюйма -> "6 футов 2 дюйма"

и т.п.

ИЛИ футы -> футы и дюймы:

6.08333 -> "6'1'' и т. д.

как я могу указать эти форматы для экземпляра RangeSlider?

Вот документация для NumberFormatter:

https://developer.apple.com/documentation/foundation/numberformatter

Я создал подкласс NumberFormatter. Как мне сделать так, чтобы экземпляр RangeSlider вызывал эту функцию переопределения каждый раз, когда ему нужно отображать отформатированную высоту на метках двух больших пальцев?

class HeightFormatter : NumberFormatter{
    override func string(from number: NSNumber) -> String? {
        let feet = number.int32Value/12
        let inches = number.int32Value % 12

        let height = "\(feet)"+"'"+"\(inches)"+"\""
        return height
    }
}

person caa5042    schedule 21.05.2018    source источник
comment
Вам нужно будет реализовать свой собственный подкласс NumberFormatter. Стандартный форматтер не может обрабатывать преобразования в/из футов/дюймов.   -  person rmaddy    schedule 21.05.2018
comment
Примечание модератора: пожалуйста, не портите свои сообщения. Как только вы публикуете вопрос, он принадлежит сайту и его пользователям. Если вы хотите удалить свой вопрос, нажмите кнопку «Удалить» под своим сообщением.   -  person Bhargav Rao    schedule 21.05.2018
comment
Я не уверен, о чем вы говорите ... что вы имеете в виду, говоря о вандализме в своих сообщениях? ... я удалил ответ на rmaddy, потому что я все еще пытался во всем разобраться ... я также редактировал свой исходный пост чтобы не путать людей   -  person caa5042    schedule 22.05.2018


Ответы (1)


Вы должны иметь возможность просто назначить экземпляр вашего нового средства форматирования чисел свойству numberFormatter ползунка:

slider.numberFormatter = HeightFormatter()
person Palle    schedule 21.05.2018
comment
гениально .... я думаю, это сработало, Палле !!! спасибо ... мне больше ничего не нужно было делать - person caa5042; 22.05.2018