我刚刚使用最新版本的CorePlot更新了我的应用程序(v2.3,我之前运行的版本是<2.0)。我没有收到任何错误,但是我的图表消失了。我曾经通过做类似的事情来继承CPTGraphHostingView的子类:
final class GraphView: CPTGraphHostingView, CPTPlotDataSource {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
configureGraph()
...
}
fileprivate func configureGraph() {
// Graph theme
graph.apply(CPTTheme(named: .plainWhiteTheme))
// Hosting view
self.hostedGraph = graph
// Plot Space
plotSpace = graph.defaultPlotSpace as! CPTXYPlotSpace
}
[我注意到继承了UIView而不是CPTGraphHostingView的子类可以在新版本中使用:
final class GraphView: UIView, CPTPlotDataSource {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
configureGraph()
...
}
fileprivate func configureGraph() {
// Graph theme
graph.apply(CPTTheme(named: .plainWhiteTheme))
// Hosting view
let hostingView = CPTGraphHostingView(frame: self.frame)
hostingView.hostedGraph = graph
self.addSubview(hostingView)
// Plot Space
plotSpace = graph.defaultPlotSpace as! CPTXYPlotSpace
}
[在大多数情况下还可以,但是我的图形之一位于ScrollView(启用了分页)上,因此在这种情况下获取self.frame
为hostingView
并不容易。我在这个新版本中缺少什么吗?谢谢!
调整主机视图大小时使用bounds
,而不是frame
。
let hostingView = CPTGraphHostingView(frame: self.bounds)