iOS图表,删除底部由xAxis标签创建的多余空间

时间:2018-10-15 01:23:59

标签: ios swift xcode uiview ios-charts

我有一个使用iOS图表创建的垂直正常外观的条形图。我的问题是,由于某种原因,每当我运行该程序时,图表都不会填满它从上到下的视图。 我专门试图解决以下事实:在栏的底部和UIView的底部之间有一个很小的空间。如何删除此空间,以使栏的底部与UIView的底部完全对齐? (不需要间隙)

这是我的代码:

    barChartView.xAxis.labelPosition = .top 
    barChartView.xAxis.drawGridLinesEnabled = false
    barChartView.xAxis.drawAxisLineEnabled = false
    barChartView.leftAxis.drawGridLinesEnabled = false
    barChartView.leftAxis.drawAxisLineEnabled = false
    barChartView.rightAxis.drawAxisLineEnabled = false
    barChartView.rightAxis.drawGridLinesEnabled = false
    barChartView.rightAxis.enabled = false
    barChartView.leftAxis.enabled = false
    barChartView.xAxis.labelTextColor = UIColor.white
    barChartView.data?.setDrawValues(false)
    barChartView.xAxis.labelFont = UIFont(name: "HelveticaNeue-Bold", size: 12.0)!
    barChartView.legend.enabled = false
    barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values:xValues)
    barChartView.xAxis.granularity = 1
    barChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0, easingOption: .easeInQuint)
    barChartView.isUserInteractionEnabled = false
    barChartView.barData?.barWidth = 0.65

这是问题的图片...我需要消除条形底部和红色空间之间的间隙。图形所在的UIView(与红色视图不同)向下到达红色视图的边界。

enter image description here

3 个答案:

答案 0 :(得分:0)

尝试一下:

 barChartView.minOffset = 0.0

如果这不起作用,也添加它。

barChartView.extraBottomOffset = -10

答案 1 :(得分:0)

我无法在BarChartView中发现特殊选项来解决您的问题。但是我可以建议另一种方式。您可以将barChartView嵌入到另一个视图中,并在barChartView的底部之间设置垂直空间约束,以使负值的超级视图位于底部,还可以为超级视图设置clipToBounds = true。因此,barChartView的底部将在superview的底部下方并被剪切。

views hierarchy

嵌入后的视图(黄色背景-超级视图,白色-barChartView)。

view after embedding

底部约束设置为-14后的视图。

view after bottom constraint was set

答案 2 :(得分:0)

能够通过根据手机显示屏的大小以编程方式调整底部约束来解决我的问题。

我将此代码添加到viewWillAppear中,并且我将继续针对其余iPhone尺寸(而不只是Xs)执行此操作:

if UIScreen.main.bounds.height == 896{
        print("Xs Max")
        bottomConstraintGraph.constant = -31.5 // bottomConstraintGraph is the constraint connected from the bottom of the graph's view to the superview and changed here through an outlet connection.
}