如何将iOS图表限制为视图大小

卡森·摩尔

EDIT简短版:我正在使用带有动态数据的ios图表来显示图形,并且正在将图形砍掉,因此图形的整个垂直部分无法正确显示。某些操作(例如从横向过渡到纵向或反之亦然)将导致图形正确显示。


原始问题

我正在使用ios-charts版本2.2.4在运行ios 9.3的iPhone 6模拟器上显示折线图,并且遇到了内容被垂直剪切的问题...有时

该图表是向下钻取图表,通过在另一个图中选择一个数据点来触发。对于某些数据点,如果我首先选择它们,则向下钻取图表将被裁剪,如下所示:

由于某种原因,图表被裁剪为31

但是,如果我先选择另一个数据点,然后重新选择刚剪切过的完全相同的数据点,则图表将按预期方式或多或少地呈现:

图表未裁剪,并按预期扩展到〜66

我手动设置图表的最大Y值,并打印最大Y值确认确实已设置,因此我认为问题不在于图表格式,而可能在于图表约束本身的看法?换句话说,也许这是布局/情节提要问题,并且可以在视图甚至父视图上设置一个属性以使其正确渲染吗?

尽管如此,以下是我用于生成图表的代码,以防万一我做任何明显错误的事情:

... // Part where I actually get the data omitted bc its boring
let chartDataSet = LineChartDataSet(yVals: dataEntries, label: "")
let chartData = LineChartData(xVals: xVals, dataSet: chartDataSet)
drilldownChart.data = chartData
formatChart(drilldownChart, yMax: [runningTotal, Double(goal.target)].maxElement()!)
chartDataSet.colors = [UIColor.blackColor()]
chartDataSet.circleColors = [UIColor.blackColor()]
chartDataSet.drawCirclesEnabled = false
chartDataSet.drawFilledEnabled = true
chartDataSet.fillColor = UIColor.blackColor()
chartDataSet.fillAlpha = 1.0
chartDataSet.valueColors = dataPointLabelColors
print(drilldownChart.chartYMax) // Still prints 66, y'know, just in case

// Format a chart by eliminating grid lines, decimals, right axis, etc.
func formatChart(chart: BarLineChartViewBase, yMax: Double) {
    let formatter = NSNumberFormatter()
    formatter.minimumFractionDigits = 0
    chart.xAxis.labelPosition = .Bottom
    chart.xAxis.gridColor = UIColor.clearColor()
    chart.leftAxis.axisMinValue = 0.0
    chart.leftAxis.valueFormatter = formatter
    chart.leftAxis.granularity = 1 // Sets a minimum granularity, but allows for higher granularities
    chart.leftAxis.axisMaxValue = [1.0, yMax * 1.1].maxElement()!
    chart.leftAxis.gridColor = UIColor.clearColor()
    chart.rightAxis.enabled = false
    chart.legend.enabled = false
    chart.data!.setValueFormatter(formatter)
    if (chart.data!.xValCount > 20) { chart.data!.setDrawValues(false) }
    chart.descriptionText = ""
    chart.animate(xAxisDuration: 1.0, yAxisDuration: 1.0, easingOption: .Linear)
    chart.pinchZoomEnabled = false
    chart.doubleTapToZoomEnabled = false

    let limit = ChartLimitLine(limit: Double(goal!.target), label: "")
    limit.lineColor = UIColor.blackColor()
    limit.lineDashLengths = [4.0, 2.0]
    chart.leftAxis.addLimitLine(limit)
    print(chart.leftAxis.axisMaxValue) // prints 66
    print(chart.chartYMax) // Prints 66
}

EDIT情节提要设置被忽略,因为它们很大,而且结果不相关

卡森·摩尔

答案是notifyDataSetChanged()在绘图函数的末尾添加a

根据我在MPAndroid图表(Android版的ios-Charts)上找到的这份文档

notifyDataSetChanged():让图表知道其基础数据已更改,并执行所有必要的重新计算(偏移量,图例,最大值,最小值等)。特别是在动态添加数据时,这是必需的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将iOS图表限制为视图大小

来自分类Dev

SwiftUI:如何将视图限制为仅在一个方向上调整大小?

来自分类Dev

如何将图片大小限制为其父容器

来自分类Dev

如何将jquery脚本限制为容器div的大小

来自分类Dev

如何将UIImageView限制为最佳大小?

来自分类Dev

如何将DiskCache插件限制为特定的存储大小?

来自分类Dev

如何将元素的大小限制为模态对话框的大小?

来自分类Dev

将图像限制为包含视图的大小 (xamarin.android)

来自分类Dev

如何将ffmpeg输入流的输出文件大小限制为10 MB

来自分类Dev

如何将Bootstrap Datepicker日期视图限制为仅Year

来自分类Dev

如何将列最大高度限制为屏幕高度?即让孩子“match_parent”大小

来自分类Dev

FullCalendar.js如何将日期选择限制为“月视图”中的某一天

来自分类Dev

如何将BigDecimal限制为固定分数?

来自分类Dev

如何将PHP特性限制为某些类

来自分类Dev

如何将GMSPlacePicker限制为仅指定的地点类型?

来自分类Dev

如何将范围限制为clicked元素?

来自分类Dev

如何将Swift协议限制为具体类型?

来自分类Dev

如何将Primefaces inputMask限制为仅数字?

来自分类Dev

如何将输入限制为仅数字

来自分类Dev

如何将OCaml整数类型限制为整数范围?

来自分类Dev

如何将Bootstrap列限制为特定列的高度?

来自分类Dev

如何将Vtune Analysis限制为特定功能

来自分类Dev

如何将应用限制为特定设备?

来自分类Dev

如何将输入整数限制为1到9

来自分类Dev

如何将EditTextPreference限制为范围1024:65535

来自分类Dev

如何将克隆表的行数限制为4?

来自分类Dev

如何将输入数量限制为100

来自分类Dev

如何将ClusterRole PolicyRule限制为命名空间?

来自分类Dev

如何将注册限制为Firebase中的产品

Related 相关文章

  1. 1

    如何将iOS图表限制为视图大小

  2. 2

    SwiftUI:如何将视图限制为仅在一个方向上调整大小?

  3. 3

    如何将图片大小限制为其父容器

  4. 4

    如何将jquery脚本限制为容器div的大小

  5. 5

    如何将UIImageView限制为最佳大小?

  6. 6

    如何将DiskCache插件限制为特定的存储大小?

  7. 7

    如何将元素的大小限制为模态对话框的大小?

  8. 8

    将图像限制为包含视图的大小 (xamarin.android)

  9. 9

    如何将ffmpeg输入流的输出文件大小限制为10 MB

  10. 10

    如何将Bootstrap Datepicker日期视图限制为仅Year

  11. 11

    如何将列最大高度限制为屏幕高度?即让孩子“match_parent”大小

  12. 12

    FullCalendar.js如何将日期选择限制为“月视图”中的某一天

  13. 13

    如何将BigDecimal限制为固定分数?

  14. 14

    如何将PHP特性限制为某些类

  15. 15

    如何将GMSPlacePicker限制为仅指定的地点类型?

  16. 16

    如何将范围限制为clicked元素?

  17. 17

    如何将Swift协议限制为具体类型?

  18. 18

    如何将Primefaces inputMask限制为仅数字?

  19. 19

    如何将输入限制为仅数字

  20. 20

    如何将OCaml整数类型限制为整数范围?

  21. 21

    如何将Bootstrap列限制为特定列的高度?

  22. 22

    如何将Vtune Analysis限制为特定功能

  23. 23

    如何将应用限制为特定设备?

  24. 24

    如何将输入整数限制为1到9

  25. 25

    如何将EditTextPreference限制为范围1024:65535

  26. 26

    如何将克隆表的行数限制为4?

  27. 27

    如何将输入数量限制为100

  28. 28

    如何将ClusterRole PolicyRule限制为命名空间?

  29. 29

    如何将注册限制为Firebase中的产品

热门标签

归档