【发布时间】:2017-03-06 05:04:27
【问题描述】:
Swift 3,领域,图表
一个屏幕有一个 DatePicker 和 BarChart
我想要
1) 选择一个日期 2)索引我的领域数据库 3) 绘制条形图
已经有一个领域数据库
为了精确索引,我将日期分隔为 YYYY~mm
class ChartsDatas: Object {
dynamic var date: Date = Date()
let dateYYYYFormat = DateFormatter()
let dateMMFormat = DateFormatter()
let dateddFormat = DateFormatter()
let datehhFormat = DateFormatter()
let datemmFormat = DateFormatter()
dynamic var dateYYYY: String = "2000"
dynamic var dateMM: String = "01"
dynamic var datedd: String = "01"
dynamic var datehh: String = "00"
dynamic var datemm: String = "00"
dynamic var count: Double = Double(0.0)
func dateLongToShort(orgDate:Date!){
dateYYYYFormat.dateFormat = "YYYY"
dateYYYY = dateYYYYFormat.string(from: orgDate)
dateMMFormat.dateFormat = "MM"
dateMM = dateMMFormat.string(from: orgDate)
dateddFormat.dateFormat = "dd"
datedd = dateddFormat.string(from: orgDate)
datehhFormat.dateFormat = "hh"
datehh = datehhFormat.string(from: orgDate)
datemmFormat.dateFormat = "mm"
datemm = datemmFormat.string(from: orgDate)
}
并绘制(此方法是绘制最新的十个数据)
var dataEntries: [BarChartDataEntry] = []
let visitorCounts = getVisitorCountsFromDatabase() //read realm DB here
var xAxisCount = visitorCounts.count
if xAxisCount > 10{
xAxisCount = visitorCounts.count - 10
}
for i in xAxisCount..<visitorCounts.count {
let timeIntervalForDate: TimeInterval = visitorCounts[i].date.timeIntervalSince1970
let dataEntry = BarChartDataEntry(x: Double(timeIntervalForDate), y: Double(visitorCounts[i].count))
dataEntries.append(dataEntry)
}
如何根据我选择的日期修改为绘制十个数据
谢谢
【问题讨论】:
-
不是解决方案,但您可以使用单个
DateFormatter实例,所有功能也正确Year格式化程序是yyyy而不是YYYY。
标签: ios swift xcode charts realm