iOS图表:自定义Y轴值
尽管我对iOS图表还很陌生,但是我在其中进行了大量的工作,并且接触到它的许多不同方面。 从自定义轴值格式器和数据集的简单端到更复杂的概念,例如自定义条形图,组合图以及其他图表和渲染器。
本文特别关注一个简单的主题,源于我在iOS图表GitHub页面上看到的有关自定义y轴标签的最新问题。 这个问题并不是最复杂的。 但是,我希望有人被卡住,他们会偶然发现本文,并为他们指明正确的方向。
让我们开始吧。
惊喜! 在本文中,我们不会讨论如何设置iOS项目。 如果您还不知道如何操作,请搜索Medium,我相信有很多很棒的文章可以帮助您入门。
这的主要任务比您想象的要容易得多。 只需创建一个新类,使其符合IAxisValueFormatter
,并实现所需的stringForValue
函数即可。 在stringForValue
函数内部,您将在其中处理有关如何格式化轴标签的逻辑。 使用自定义轴格式化程序可能会很有创意,因此我敦促您熟悉它们,并看看它们可以为您做什么。
在此示例中,我们将假设我们的数据集仅包含0到4的y值。 我们的格式化程序将转换我们的y值0–4,并将其显示为从“ 强烈反对”到“ 强烈同意” 。
一致性
让我们从创建我们的类MyCustomAxisValueFormatter
并使它符合IAxisValueFormatter
。
如您所见,我们有一个必须解决的错误。 我们必须实现stringForValue
以满足IAxisValueFormatter
协议要求。
实现stringForValue
如前所述,这是我们要返回要在轴上显示的特定值的字符串的地方。 让我们从简单地返回值的整数作为字符串开始,以了解该方法的工作原理。
添加自定义逻辑
接下来,我们将创建一个枚举来代表我们的价值观的不同状态。 这将提供一种表示我们的值的方式,并在y轴上为标签提供一个字符串。
现在我们有了带有Int
rawValue
的枚举,我们可以将我们的值转换为Int
,初始化一个AgreementRating
,然后使用该等级设置轴标签。
注意:为简单起见,我忽略了错误处理,因为我保证值为0–4。 但是,在现实世界中, 请勿强行打开包装并忽略失败的可能性,否则您的应用程序可能会崩溃。
配置图表轴
作为确保图表仅显示这五个标签的最后一步,我们需要在左轴上设置几个属性。
在那里,您拥有了! 带有自定义y轴标签的图表,其呈现的不仅仅是一个简单的整数/双精度值。
(是的,这是带有圆条的条形图的自定义实现。可能很快就会出现!)
现在,我们已经看到了如何创建自定义轴值格式化程序,并使用它来显示与简单数字值完全不同的字符串。 对于x轴和y轴,这些自定义格式器的功能可能非常强大。 感谢danielgindi提供出色的iOS图表库。 去看看GitHub仓库! 链接资源。
iOS图表-https://github.com/danielgindi/Charts