iOS Swift Highcharts P ie с градиентной заливкой черного цвета - PullRequest
0 голосов
/ 03 марта 2020

Я использую этот пример для создания диаграммы ap ie на iOS: https://www.highcharts.com/ios/demo/pie-gradient

Диаграмма p ie отрисовывается нормально, но градиентная заливка только черная цвет. Я преобразовал код в примере в Swift следующим образом:

let colors = [
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
            stops: [[ 0, "#7cb5ec" ],[1, "rgb(48,105,160)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#434348" ],[1, "rgb(0,0,0)"]])!,
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#90ed7d" ],[1, "rgb(68,161,49)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#f7a35c" ],[1, "rgb(171,87,16)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#8085e9" ],[1, "rgb(52,57,157)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#f15c80" ],[1, "rgb(165,16,52)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#e4d354" ],[1, "rgb(152,135,8)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#2b908f" ],[1, "rgb(0,68,67)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#f45b5b" ],[1, "rgb(168,15,15)"]]),
        HIColor(radialGradient: ["cx": 0.5, "cy": 0.3,"r": 0.7],
                stops: [[ 0, "#91e8e1" ],[1, "rgb(69,156,149)"]])
    ]

В данном примере они присвоили массив цветов для options.colors, но он принимает только массив String, а не массив HIColor. Вот ошибка, которую я получаю: error.png

Чтобы исправить ошибку, я попробовал модификацию кода, которая дает черный цвет p ie:

let colors_str = colors.map{
        (color: HIColor!) -> String  in

        let c = color.getData().debugDescription
        .replacingOccurrences(of: "Optional(", with: "")
        .replacingOccurrences(of: "\n", with: "")
        .replacingOccurrences(of: "\"", with: "")
        .dropLast()

        let value = String(c)
        return value
    } 

options.colors = colors_str

black-p ie -art

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 03 марта 2020

Я нашел решение этой проблемы. Хотел опубликовать его, так как я потратил на него день, и в случае, если кто-то еще столкнется с той же проблемой. Поэтому код iOS на образцах Highcarts неверен. Я сослался на код Javascript того же p ie и обнаружил, что цвета назначены для параметров графика p ie color. Вот пример кода в Swift:

 let plot_options = HIPlotOptions()
 plot_options.pie = HIPie()
 plot_options.pie.colors = colors as? [HIColor]
...