不能再在 CorePlot (v2.3) 中子类化 CPTGraphHostingView 了吗?

Can't subclass CPTGraphHostingView in CorePlot anymore (v2.3)?

我刚刚用最新版本的 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(启用分页)上,因此在这种情况下为 hostingView 获取 self.frame 并不容易。 我在这个新版本中遗漏了什么吗? 谢谢!

在调整托管视图大小时使用 bounds 而不是 frame

let hostingView = CPTGraphHostingView(frame: self.bounds)

所以根据 Eric 的回答,我删除了子类并简单地向托管视图添加了约束:

fileprivate func configureGraph() {
    // Graph theme
    graph.apply(CPTTheme(named: .plainWhiteTheme))

    let hostingView = CPTGraphHostingView(frame: self.bounds)
    hostingView.hostedGraph = self.graph
    self.addSubview(hostingView)
    hostingView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
        hostingView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 0),
        hostingView.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 0),
        hostingView.widthAnchor.constraint(equalTo: self.widthAnchor, multiplier: 1),
        hostingView.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 1)
    ])

    // Plot Space
    plotSpace = graph.defaultPlotSpace as! CPTXYPlotSpace
}