0000_0000_0000_0101_pnchart-swift出現crash解決

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,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 當然也可以自己修改嘍
}

最後

打算自己在這個框架基礎上寫個繪圖框架,目前有這打算

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章