2015-05-08 41 views

回答

0

好吧,我已經找到它了。供您參考: 而不是添加SChartDateTimeAxis而是應該添加SChartDiscontiniousDateTimeAxis

然後,對於數據系列中的任何缺口,您必須明確排除時間段爲addExcludedTimePeriod:。 (你可以這樣做,我檢查第二天是否與dataSeries中的下一個日期相同)。

SChartDiscontinuousDateTimeAxis *xAxis = [[SChartDiscontinuousDateTimeAxis alloc] init]; 
for (NSUInteger iter = 0; iter < self.quotes.count - 1; iter++) { 

    NSDate* thisDate = ((TBHistoricQuote*)self.quotes[iter]).date; 
    NSDate* nextDate = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitDay 
                    value:1 
                    toDate:thisDate 
                   options:0]; 
    NSDate* nextSeriesElementDate = ((TBHistoricQuote*)self.quotes[iter+1]).date; 


    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 


    if ([nextDate compare:nextSeriesElementDate] == NSOrderedAscending) { 

     NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay 
                fromDate:nextDate 
                toDate:nextSeriesElementDate 
                options:0]; 

     [xAxis addExcludedTimePeriod:[[SChartTimePeriod alloc] initWithStart:nextDate andLength:[[SChartDateFrequency alloc] initWithDay:components.day]]]; 
    } 

} 

self.chart.xAxis = xAxis;