我试图在简单的折线图上绘制一些数据。下面是我存储数据的类。
如何用时间或日期绘制我的yValue
s字符串?
另外,我想将title
作为UIButton
添加到图表中的每个数据点。点击UIButton
应显示相应的detailedNote
是一个小弹出窗口。
我已经搜索并深入研究了许多iOS图表库,但没有找到添加这种简单功能的方法。
graph-with-buttons-at-data-points.png
此外,过滤和绘制数据的方式是什么?今天","上周","上个月"或者任何时间间隔?
我可以在没有任何第三方框架/库帮助的情况下使用Core Plot和UIBeizerPath等iOS库来完成所有这些工作吗? 我更喜欢使用UIBeizerPath,因为我可以使图形平滑。 https://medium.com/@ramshandilya/draw-smooth-curves-through-a-set-of-points-in-ios-34f6d73c8f9#.28frf03to
有人能指出我正确的资源.. 发布快速代码非常感谢!
class NoteEntry {
var title: String?
var detailedNote: String?
var yValue: Float? = 0
let timeString : String = {
let formatter = NSDateFormatter()
formatter.dateFormat = "h:mm a"
formatter.AMSymbol = "AM"
formatter.PMSymbol = "PM"
return formatter.stringFromDate(NSDate())
}()
let dateString: String = {
let formatter = NSDateFormatter()
formatter.dateFormat = "d"
return formatter.stringFromDate(NSDate())
}()
let dayOfTheWeekString: String = {
let formatter = NSDateFormatter()
formatter.dateFormat = "EEE"
return formatter.stringFromDate(NSDate())
}()
let monthAndYearString: String = {
let formatter = NSDateFormatter()
formatter.dateFormat = ""
return formatter.stringFromDate(NSDate())
}()
}
答案 0 :(得分:1)
以下是如何使用SwiftCharts执行此操作的答案:
如何用时间或日期绘制yValues作为字符串? 您必须将字符串转换回日期。否则图表将不知道如何订购它们。我还建议在模型类中存储日期而不是字符串。在需要字符串的地方进行格式化,或者至少在单独的(计算的)变量或扩展中进行格式化。关于如何在SwiftCharts中创建带日期的图表,库中有一些例子,只是用它们定位。
标题为UIButton
您可以使用任何类型的UIViews作为图表点/叠加/等。对于带有标题的行,您将有一个线图层和一个添加可点击标题的图层,例如, NotificationsExample - 这非常接近你想做的事情。它使用HandlingView
而不是UIButton
来关闭而不是使用选择器进行抽头处理。使用选择器,您将失去处理点击的图表点的上下文。
过滤"今天","上周"等等
我建议为此开一个新问题。你不应该把这么多问题捆绑在一起。这也与图表库无关,没有图表库会为您执行此操作。您必须使用NSDateComponents
。也许那里有一个时间操作库 - 正如所说这是一个单独的问题。
核心情节是第三方框架:)您当然可以从头开发图表,但我建议使用图书馆。对于特殊情况,SwiftCharts看起来非常合适,您应该能够使用修改后的NotificationsExample版本来完成图表,以使用日期而不是数字(从其他示例中复制日期),并调整可点击的叠加层。 / p>
如有更多问题,请随时评论此问题或您在SwiftCharts中打开的问题。
(免责声明:我是SwiftCharts的作者)。