diff --git a/ios/ReactNativeCharts/RNBarLineChartBaseManager.swift b/ios/ReactNativeCharts/RNBarLineChartBaseManager.swift index 387b8b98a..e0a5b8d41 100644 --- a/ios/ReactNativeCharts/RNBarLineChartBaseManager.swift +++ b/ios/ReactNativeCharts/RNBarLineChartBaseManager.swift @@ -7,65 +7,108 @@ import Foundation import DGCharts protocol RNBarLineChartBaseManager { - var _bridge : RCTBridge? {get} + var _bridge : RCTBridge? {get} } extension RNBarLineChartBaseManager { - func _moveViewToX(_ reactTag: NSNumber, xValue: NSNumber) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).moveViewToX(xValue.doubleValue); + func _moveViewToX(_ reactTag: NSNumber, xValue: NSNumber) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + + barLineChart.moveViewToX(xValue.doubleValue); + } } - } - - func _moveViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).moveViewTo(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String)); + + func _moveViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + + barLineChart.moveViewTo(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String)); + } } - } - - func _moveViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).moveViewToAnimated(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String), duration: duration.doubleValue / 1000.0); + + func _moveViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + + barLineChart.moveViewToAnimated(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String), duration: duration.doubleValue / 1000.0); + } } - } - - func _centerViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).centerViewTo(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String)); + + func _centerViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + + barLineChart.centerViewTo(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String)); + } } - } - - func _centerViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).centerViewToAnimated(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String), duration: duration.doubleValue / 1000.0); + + func _centerViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + + barLineChart.centerViewToAnimated(xValue: xValue.doubleValue, yValue: yValue.doubleValue, axis: BridgeUtils.parseAxisDependency(axisDependency as String), duration: duration.doubleValue / 1000.0); + } } - } - - func _fitScreen(_ reactTag: NSNumber) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).fitScreen(); + + func _fitScreen(_ reactTag: NSNumber) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + + barLineChart.fitScreen(); + } } - } - - func _highlights(_ reactTag: NSNumber, config: NSArray) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - (view.chart as! BarLineChartViewBase).highlightValues(HighlightUtils.getHighlights(config)); + + func _highlights(_ reactTag: NSNumber, config: NSArray) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + guard let view: RNBarLineChartViewBase = viewRegistry?[reactTag] as? RNBarLineChartViewBase, + let barLineChart = view.chart as? BarLineChartViewBase + else { + return + } + barLineChart.highlightValues(HighlightUtils.getHighlights(config)); + } } - } - - func _setDataAndLockIndex(_ reactTag: NSNumber, data: NSDictionary) { - _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in - let view: RNBarLineChartViewBase = viewRegistry![reactTag] as! RNBarLineChartViewBase; - view.setDataAndLockIndex(data); + + func _setDataAndLockIndex(_ reactTag: NSNumber, data: NSDictionary) { + _bridge?.uiManager.addUIBlock { (uiManager: RCTUIManager?, viewRegistry:[NSNumber : UIView]?) in + guard + let view = viewRegistry?[reactTag] as? RNBarLineChartViewBase + else { + return + } + view.setDataAndLockIndex(data); + } } - } } diff --git a/ios/ReactNativeCharts/line/RNLineChartView.swift b/ios/ReactNativeCharts/line/RNLineChartView.swift index 2f7bf9155..78f7ab32f 100644 --- a/ios/ReactNativeCharts/line/RNLineChartView.swift +++ b/ios/ReactNativeCharts/line/RNLineChartView.swift @@ -29,6 +29,11 @@ class RNLineChartView: RNBarLineChartViewBase { } + override func layoutSubviews() { + super.layoutSubviews() + _chart.frame = self.bounds // Adjust the chart's frame to fill the entire component's bounds + } + required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }