【问题标题】:CorePlot vertical scrolling for horizontal bars水平条的 CorePlot 垂直滚动
【发布时间】:2016-06-18 14:27:37
【问题描述】:

我正在使用核心图来绘制一组具有范围的数据:

X:0 到 200 Y:0到35

我已将条形图水平渲染,但它不会滚动。

我有:

func setupSpace() {
    let plot = CPTBarPlot()
    plot.barsAreHorizontal = true
    plot.delegate = self
    plot.dataSource = self
    plot.barCornerRadius = 5.0
    plot.barWidth = 2.0
    plot.barOffset = 1.0
    self.hostedGraph?.addPlot(plot)
}

func reloadData() {
    let xMin = 0.0
    let yMin = 0.0
    let xMax = 200
    let yMax = 35.0

    let plotSpace = self.hostedGraph?.defaultPlotSpace as! CPTXYPlotSpace

    plotSpace.xRange = CPTPlotRange(locationDecimal: CPTDecimalFromDouble(xMin), lengthDecimal: CPTDecimalFromDouble(xMax - xMin))
    plotSpace.globalXRange = CPTPlotRange(locationDecimal: CPTDecimalFromDouble(xMin), lengthDecimal: CPTDecimalFromDouble(xMax - xMin))

    plotSpace.yRange = CPTPlotRange(locationDecimal: CPTDecimalFromDouble(yMax), lengthDecimal: CPTDecimalFromDouble(-(yMax - yMin) - 1))
    plotSpace.globalYRange = CPTPlotRange(locationDecimal: CPTDecimalFromDouble(yMax), lengthDecimal: CPTDecimalFromDouble(-(yMax - yMin) - 1))

    self.hostedGraph?.reloadData()
}

但我的条形图如下:

我需要它们在不重叠的情况下进行绘制,并且我需要它们能够在垂直方向上滚动。

我该怎么做?

【问题讨论】:

    标签: ios swift core-plot


    【解决方案1】:

    减少yRange 的长度以仅显示可见绘图区域中的一些条形。您将能够滚动查看其他栏。

    【讨论】:

    • 我这样做了。它仍然不会滚动 yRange。我将 yGlobalRange 设置为 30,将 yRange 设置为 15。仅显示 15 个条,但其他条不显示,也不会滚动。
    • 您是否在绘图空间上将allowsUserInteraction 设置为YES
    • 是的。我让它工作了。我在覆盖 func plotSpace(space: CPTPlotSpace, willChangePlotRangeTo newRange: CPTPlotRange, forCoordinate coordinate: CPTCoordinate) -> CPTPlotRange? 时限制了滚动,我修复了它,现在它可以滚动了。
    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 2016-05-28
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多