Open Lyro1 opened 4 years ago
This is the correct swiftui file, but work only if you compile the app:
import SwiftUI
import AAInfographics
struct ChartSwiftUIView: UIViewRepresentable {
func updateUIView(_ uiView: AAChartView, context: Context) {
}
func makeUIView(context: Context) -> AAChartView {
let aaChartView = AAChartView()
let aaChartModel = AAChartModel()
.chartType(.column)//Can be any of the chart types listed under `AAChartType`.
.animationType(.bounce)
.title("TITLE")//The chart title
.subtitle("subtitle")//The chart subtitle
.dataLabelsEnabled(false) //Enable or disable the data labels. Defaults to false
.tooltipValueSuffix("USD")//the value suffix of the chart tooltip
.categories(["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])
.colorsTheme(["#fe117c","#ffc069","#06caf4","#7dffc0"])
.series([
AASeriesElement()
.name("Tokyo")
.data([7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]),
AASeriesElement()
.name("New York")
.data([0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]),
AASeriesElement()
.name("Berlin")
.data([0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]),
AASeriesElement()
.name("London")
.data([3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]),
])
aaChartView.aa_drawChartWithChartModel(aaChartModel)
return aaChartView
}
}
struct ContentView: View {
var body: some View {
ChartSwiftUIView()
}
}
and this the result:
AAChartKit-Swift appears to be built for Mac using Catalyst. My macOS app uses SwiftUI, and isn't configured to use Catalyst. I'm not yet sure how to incorporate AAChartKit-Swift as a Swift package without converting my SwiftUI macOS app into using Mac Catalyst.
I converted the project to iOS, generated a Mac Catalyst build, added the AAChartKit-Swift package, and picked the above demo chart. It did not work immediately, I had to create a new Xcode project file, add the AAChartKit-Swift package first. Once that was working I added the rest of the project back in. For some reason the executable had trouble finding AAJSFIles.bundle so I made sure that it was part of the Copy Bundle Resources group under Xcode tab Build Phases.
How to refresh data automatically with SwiftUI?
I really love the look of those charts, and since SwiftUI does not have any options to display properly graphs, I tried to integrate this to SwiftUI like so :
But I get several issues :
Those lines:
raise the error
Value of type 'Chart' has no member 'view'
The return line:
raise the error
Cannot convert return expression of type '()' to return type 'UIPageViewController'
Any idea how I could do it properly?