gpt4 book ai didi

ios - Shinobi Donut 图表标签重叠

转载 作者:行者123 更新时间:2023-11-28 08:20:29 26 4
gpt4 key购买 nike

我有一个使用 Shinobi 的圆环图。但是根据标签重叠的数据!!

enter image description here

还有一个标签没有完全显示(Max Payment)。

我搜索了整个堆栈溢出,但找不到任何解决方案。 Shinobi 网站或他们的文档中也没有关于此问题的信息。

这是我的代码:

import UIKit

class MyViewController: UIViewController, SChartDatasource {
var donutChartValues:[Double] = []
var donutChartLabels:[String] = []
@IBOutlet weak var chartView: UIView!

override func viewDidLoad() {
super.viewDidLoad()
redrawChart()
}

func redrawChart() {
setDonutChartValues()
let chart = ShinobiChart(frame: chartView.bounds)
chart.autoresizingMask = [.flexibleHeight, .flexibleWidth]
chart.backgroundColor = UIColor.clear
chart.datasource = self
chartView.addSubview(chart)
}
func setDonutChartValues () {
donutChartValues.removeAll()
donutChartLabels.removeAll()
donutChartValues.append(2500.00)
donutChartLabels.append("Max Payment")
donutChartValues.append(300.0)
donutChartLabels.append("Property Tax")
donutChartValues.append(100.0)
donutChartLabels.append("Condo Fees")
donutChartValues.append(150.0)
donutChartLabels.append("Heating Costs")
donutChartValues.append(300.0)
donutChartLabels.append("Debts")
donutChartValues.append(4000.0)
donutChartLabels.append("Other Expenses")
}

/********************************************************************************/
// MARK: - SChartDatasource methods
/********************************************************************************/

func numberOfSeries(in chart: ShinobiChart) -> Int {
return 1
}

func sChart(_ chart: ShinobiChart, seriesAt index: Int) -> SChartSeries {
let donutSeries = SChartDonutSeries()
donutSeries.style().spokeStyle.showSpokes = true;
donutSeries.selectedStyle().spokeStyle.showSpokes = true;
donutSeries.style().labelFontColor = UIColor.black
donutSeries.selectedStyle().labelFontColor = UIColor.black
return donutSeries
}

func sChart(_ chart: ShinobiChart, numberOfDataPointsForSeriesAt seriesIndex: Int) -> Int {
return donutChartValues.count
}

func sChart(_ chart: ShinobiChart, dataPointAt dataIndex: Int, forSeriesAt seriesIndex: Int) -> SChartData {
let dp = SChartDataPoint()
dp.xValue = 0
dp.yValue = (donutChartValues.count > dataIndex) ? donutChartValues[dataIndex] : 0
return dp
}

func sChart(_ chart: ShinobiChart, labelForSliceAt sliceIndex: Int, in series: SChartRadialSeries) -> UILabel? {
let sliceLabel = UILabel()
sliceLabel.text = (donutChartLabels.count > sliceIndex) ? donutChartLabels[sliceIndex] : ""
return sliceLabel
}
}

如有任何帮助,我们将不胜感激。

最佳答案

我相信您想要的是 sChart:alterLabel:forDatapoint:atSliceIndex:inRadialSeries:NS_SWIFT_NAME:
SChartDelegate 协议(protocol)的方法。

根据 the documentation对于此方法,它“在将每个饼图/ donut 系列添加到图表之前为您提供每个标签。使用它来设置颜色、边框或重新定位标签 ” (强调已添加)。

blog article举例说明如何实现它。

关于ios - Shinobi Donut 图表标签重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41465554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com