Значения формата круговой диаграммы в диаграммах - PullRequest
0 голосов
/ 24 августа 2018

Я использую круговую диаграмму из библиотеки Charts для iOS и могу отображать результаты на диаграмме, но я не могу отформатировать значение в этой диаграмме.

Ожидаемый результат

Я хочу, чтобы значение добавлялось перед значением. Так же, как это - £ 10

Что я сделал

class ChartValueFormatter : NSObject, IValueFormatter {

    var numberFormatter : NumberFormatter?

    convenience init(numberFormatter : NumberFormatter) {
        self.init()
        self.numberFormatter = numberFormatter
    }

    func stringForValue(_ value: Double, entry: ChartDataEntry, dataSetIndex: Int, viewPortHandler: ViewPortHandler?) -> String{
        return numberFormatter!.string(for: "£ \(value)")!
    }

}

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.locale = Locale.current
let valuesFormatter = ChartValueFormatter(numberFormatter: numberFormatter)             
dataSet.valueFormatter = valuesFormatter

Актуальная проблема

Этот подход дает мне ошибку на return numberFormatter!.string(for: "£ \(value)")!, и ошибка заключается в том, что value равен nil.

Может кто-нибудь помочь мне с тем, что я сделал неправильно и что нужно сделать, чтобы получить ожидаемый результат.

1 Ответ

0 голосов
/ 24 августа 2018

Пожалуйста, проверьте это:

let price:Float = 1.99

extension Float {
    var asLocaleCurrency:String {
        var formatter = NumberFormatter()
        formatter.numberStyle = .currency
        formatter.currencyCode = "GBP"
        return formatter.string(for: self)!
    }
}

let pri = price.asLocaleCurrency
print(pri)

Результат: £ 1,99

вы должны использовать

formatter.numberStyle = .currency

не как .decimal

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