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