[SWIFT] 스위프트 배에서 막 대형 차트에 줄 위에 트랙볼 및 액세스 라벨을 달성하는 방법
SWIFT스위프트 배에서 막 대형 차트에 줄 위에 트랙볼 및 액세스 라벨을 달성하는 방법
해결법
-
1.불행하게도, 바 위의 값 String 또는 더블 대신 이미지를 설정하는 방법은 없습니다. 하지만 그래 우리는 바 위의 값이 언급 한 링크를 방문하시기 바랍니다에 액세스 할 수 있습니다. https://github.com/danielgindi/Charts/issues/2126
불행하게도, 바 위의 값 String 또는 더블 대신 이미지를 설정하는 방법은 없습니다. 하지만 그래 우리는 바 위의 값이 언급 한 링크를 방문하시기 바랍니다에 액세스 할 수 있습니다. https://github.com/danielgindi/Charts/issues/2126
class ViewController: UIViewController { var chartData = BarChartData() var months: [String]! var unitsSold = [Double]() weak var valueFormatter: IValueFormatter? @IBOutlet var viewForChart: BarChartView! override func viewDidLoad() { super.viewDidLoad() valueFormatter = self months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0] setChart(dataEntryX: months, dataEntryY: unitsSold) } func setChart(dataEntryX forX:[String],dataEntryY forY: [Double]) { viewForChart.noDataText = "You need to provide data for the chart." var dataEntries:[BarChartDataEntry] = [] for i in 0..<forX.count{ let dataEntry = BarChartDataEntry(x: Double(i), y: Double(forY[i]) , data: months as AnyObject?) dataEntries.append(dataEntry) } let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold") chartDataSet.setColor(UIColor.brown, alpha: 0.30) chartData = BarChartData(dataSet: chartDataSet) chartData.barWidth = 0.75 chartData.setDrawValues(true) viewForChart.data = chartData viewForChart.xAxis.valueFormatter = IndexAxisValueFormatter(values: months) viewForChart.drawBordersEnabled = false viewForChart.data?.setValueFormatter(valueFormatter) } }
위 또는 클래스를 넘어 확장을 추가
extension ViewController: IValueFormatter { func stringForValue(_ value: Double, entry: ChartDataEntry, dataSetIndex: Int, viewPortHandler: ViewPortHandler?) -> String { print(value) //logic to print string at required point or value switch value { case 20.0: return "🙂" default: return "" } } }
-
2.빠른 2 배의 경우 수업이 추가 //
빠른 2 배의 경우 수업이 추가 //
class ValueFormator2:NSNumberFormatter{ override func stringFromNumber(number: NSNumber) -> String? { print(number) switch number { case 3.0: return "🙂" default: return "\(number)" } } }
그리고
func setChart(xValues: [String], yValuesLineChart: [Double], yValuesBarChart: [Double] , combinedChartView:CombinedChartView) { let form = ValueFormator2() combinedChartView.barData?.setValueFormatter(form) }
from https://stackoverflow.com/questions/41979926/how-to-achieve-trackball-and-access-label-above-bar-on-bar-charts-in-swift-3x by cc-by-sa and MIT license
'SWIFT' 카테고리의 다른 글
[SWIFT] 스위프트 - 이름은 같지만 다른 매개 변수를 함수에 대한 참조를 얻을 (0) | 2020.11.07 |
---|---|
[SWIFT] 스위프트 정규 표현식 형식? (0) | 2020.11.07 |
[SWIFT] AudioKyt IOS AKSamplerMetronome (0) | 2020.11.07 |
[SWIFT] 스위프트 동적 캐스트 실패 - 오류 단위 테스트를 실행하려고 할 때 (0) | 2020.11.07 |
[SWIFT] 스위프트의 AVPlayerViewController에 유튜브에서 비디오를 재생 [중복] (0) | 2020.11.07 |