0000_0000_0000_0101 PNChart-swift出现crash解决
Optional Swift 博客正式开张,团队成员:PMST、星夜暮晨、Jim、ICE。地址:optionalswift.cn。国外访问比较慢,你懂的。
这几天一直忙于项目的事情,由于要使用绘制折线图功能实现流量随时间的一个走势,因此我最后选用了PNChart-swfit。有两种方式可以使用:
Pod 安装。
下载swift文件,直接导入引用即可。
我选择了后者,操作简便,此外由于是swift写的,使用起来灰常顺手。
至于框架代码方面,可能是因为刚写的,所以还有很多BUG,我就遇到一个ORZ….
bug说明
这和y轴的值有关,假如你的y轴的值是[10,32,12,17],那么最大值Max=32,Min=10,也就是Y轴上坐标从10开始到32结束,这个很好理解,因为你的数据区间就是在[Min,Max]之间,那么坐标值范围也应该是这个。
现在讨论这个情况。y轴值是[10,10,10],那么最大值Max=10,Min=10,两者相等,似乎没有什么事情,按照我们的想法是y轴就一个点喽,难道这是bug?显然我说的不是这个。而是在框架中会有一步除法。
public func strokeChart()
函数中找到如下代码。
innerGrade = (yValue! - yValueMin) / (yValueMax - yValueMin)//除数≠0才可以 假如=0 就是NAN了无效 程序崩掉
解决方法
现在找到属性public var chartData:NSArray = []
中yValueMin = yMin;
这一行 在之后添加判断代码:
yValueMax = yMax;
if yValueMax == yValueMin
{
yValueMax += 1 //加上1 当然也可以自己修改喽
}
最后
打算自己在这个框架基础上写个绘图框架,目前有这打算