无法再在CorePlot中将CPTGraphHostingView子类化(v2.3)吗?

问题描述 投票:0回答:1

我刚刚使用最新版本的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.framehostingView并不容易。我在这个新版本中缺少什么吗?谢谢!

ios swift uiview subclass core-plot
1个回答
0
投票

调整主机视图大小时使用bounds,而不是frame

let hostingView = CPTGraphHostingView(frame: self.bounds)
© www.soinside.com 2019 - 2024. All rights reserved.