Не можете больше создать подкласс CPTGraphHostingView в CorePlot (v2.3)? - PullRequest
0 голосов
/ 05 ноября 2019

Я только что обновил свое приложение до последней версии CorePlot (v2.3, у меня была версия <2.0 ранее). Я не получил никаких ошибок, однако мои графики исчезли. Я использовал для создания подкласса CPTGraphHostingView, делая что-то вроде: </p>

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 в этом случае непросто. Я что-то упустил в этом новом выпуске? Спасибо!

1 Ответ

0 голосов
/ 06 ноября 2019

Используйте bounds при определении размера хостинга, а не frame.

let hostingView = CPTGraphHostingView(frame: self.bounds)
...