Charts 心肺图的设定范围
我试图在ShinobiChart中设置我的Charts 心肺图的设定范围,charts,shinobi,Charts,Shinobi,我试图在ShinobiChart中设置我的NSDateTimeAxis的范围,但出现了一些问题,我的代码如下所示: func segmentedControlTapped(sc:UISegmentedControl){ let toDateString:String = "2015-01-05" let dateFormatter = NSDateFormatter() dateFormatter.formatterBehavior = NSDateFormatterB
NSDateTimeAxis
的范围,但出现了一些问题,我的代码如下所示:
func segmentedControlTapped(sc:UISegmentedControl){
let toDateString:String = "2015-01-05"
let dateFormatter = NSDateFormatter()
dateFormatter.formatterBehavior = NSDateFormatterBehavior.Behavior10_4
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
let toDate = dateFormatter.dateFromString(toDateString)
switch (sc.selectedSegmentIndex){
case 0:
println("10 years")
let fromDateString:String = "2005-01-03"
let fromDate = dateFormatter.dateFromString(fromDateString)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
case 1:
println("5 years")
let fromDate:String = "2010-01-05"
let d = dateFormatter.dateFromString(fromDate)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
case 2:
println("3 years")
let fromDate:String = "2012-01-05"
let d = dateFormatter.dateFromString(fromDate)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
case 3:
println("1 year")
let fromDate:String = "2014-01-05"
let d = dateFormatter.dateFromString(fromDate)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
default:
println("something went terribly wrong")
}
}
@IBAction func segmentedControlValueChanges(sender: UISegmentedControl) {
var interval: NSTimeInterval?
switch (sender.selectedSegmentIndex) {
case 0: interval = 60 * 60 * 24
case 1: interval = 60 * 60 * 24 * 7
default: println("Error")
}
let endDate = startDate.dateByAddingTimeInterval(interval!)
chart.xAxis.defaultRange = SChartDateRange(dateMinimum: startDate, andDateMaximum: endDate)
chart.reloadData()
chart.redrawChart()
}
我知道我使用的日期存在于我的xAxis上,但它仍然不允许我更改范围。正确的方法是什么
如有任何建议,将不胜感激
编辑:
我也试过这样做,但它给我的错误是:
无法分配给此表达式的结果
xAxis不是使用let
声明的,所以这对我来说仍然是个谜
case 0:
println("10 years")
let fromDateString:String = "2005-01-03"
let fromDate = dateFormatter.dateFromString(fromDateString)
var dateRange = SChartDateRange(dateMinimum: fromDate, andDateMaximum: toDate)
let range = SChartDateRange(dateMinimum: fromDate, andDateMaximum: toDate)
self.xAxis.axisRange.minimum = range.minimum
self.xAxis.axisRange.maximum = range.maximum
您是否可以尝试设置轴的
defaultRange
?然后需要重新加载并重新绘制图表
e、 g.类似这样的情况:
func segmentedControlTapped(sc:UISegmentedControl){
let toDateString:String = "2015-01-05"
let dateFormatter = NSDateFormatter()
dateFormatter.formatterBehavior = NSDateFormatterBehavior.Behavior10_4
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
let toDate = dateFormatter.dateFromString(toDateString)
switch (sc.selectedSegmentIndex){
case 0:
println("10 years")
let fromDateString:String = "2005-01-03"
let fromDate = dateFormatter.dateFromString(fromDateString)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
case 1:
println("5 years")
let fromDate:String = "2010-01-05"
let d = dateFormatter.dateFromString(fromDate)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
case 2:
println("3 years")
let fromDate:String = "2012-01-05"
let d = dateFormatter.dateFromString(fromDate)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
case 3:
println("1 year")
let fromDate:String = "2014-01-05"
let d = dateFormatter.dateFromString(fromDate)
self.xAxis.setRangeWithMinimum(fromDate, andMaximum: toDate)
default:
println("something went terribly wrong")
}
}
@IBAction func segmentedControlValueChanges(sender: UISegmentedControl) {
var interval: NSTimeInterval?
switch (sender.selectedSegmentIndex) {
case 0: interval = 60 * 60 * 24
case 1: interval = 60 * 60 * 24 * 7
default: println("Error")
}
let endDate = startDate.dateByAddingTimeInterval(interval!)
chart.xAxis.defaultRange = SChartDateRange(dateMinimum: startDate, andDateMaximum: endDate)
chart.reloadData()
chart.redrawChart()
}