2015-05-21 4 views
6

अच्छी तरह से काम नहीं करता है। आईओएस 8.3 चल रहा है।आईओएस कोर-प्लॉट स्क्रॉल कोरप्लॉट संस्करण 1.6 का उपयोग कर

मैं गुणक लाइनों का प्रतिनिधित्व करने के लिए स्कैटरप्लॉट के साथ कोर-प्लॉट का उपयोग कर रहा हूं। जब मैं स्क्रॉल करता हूं, तो ग्राफ कूदता है और यह ताला लगा देता है। मुझे नहीं पता कि क्या होता है। क्या आप मेरी मदद कर सकते हैं? यहाँ मेरी कोड:

#import <UIKit/UIKit.h> 
#import "CorePlot-CocoaTouch.h" 
@interface TemporalLineViewController:UIViewController<CPTPlotDataSource, 
CPTScatterPlotDelegate> 

@property (strong, nonatomic) IBOutlet CPTGraphHostingView *hostingView; 

@end 


@interface TemporalLineViewController(){ 
    NSMutableDictionary *dates; 
} 
@property (nonatomic, readwrite, strong) NSArray *plotData; 
@end 

@implementation TemporalLineViewController 
-(CPTGraph *)createGraph{ 
    initWithFrame:CGRectMake(viewGraph.frame.origin.x, viewGraph.frame.origin.y, 500, viewGraph.frame.size.height)]; 

    CPTGraph *graph = [[CPTXYGraph alloc] initWithFrame:hostingView.bounds]; 
    [graph applyTheme:[CPTTheme themeNamed:kCPTSlateTheme]]; 
    hostingView.hostedGraph=graph; 

    // Axes 
    CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet; 
    CPTXYAxis *x   = axisSet.xAxis; 
    x.majorIntervalLength   = CPTDecimalFromDouble(ONEDAY); 
    x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0); 
    x.minorTicksPerInterval  = 0; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    CPTTimeFormatter *timeFormatter = [[CPTTimeFormatter alloc] initWithDateFormatter:dateFormatter]; 
    timeFormatter.referenceDate = [[NSDate alloc]init]; 
    x.labelFormatter   = timeFormatter; 
    x.labelRotation    = CPTFloat(M_PI_4); 

    CPTXYAxis *y = axisSet.yAxis; 
    y.hidden=YES; 
    y.orthogonalCoordinateDecimal = CPTDecimalFromInt(0); 
    return graph; 
} 

-(void)createScatterPlot{ 

    CPTGraph * graph = [self createGraph]; 

    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 
    NSTimeInterval xLow  = 0.0; 
    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(xLow) length:CPTDecimalFromDouble(ONEDAY * 10.0)]; 
    plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(-1) length:CPTDecimalFromDouble(5.0)]; 
    plotSpace.allowsUserInteraction = YES; 
    plotSpace.allowsMomentum = YES; 

    CPTScatterPlot *diagnosticPlot = [self createScatterPlotWithIdentifier:DIAGNOSTIC_PLOT withLineColor:[CPTColor greenColor] withFillColor:[CPTColor greenColor]]; 
    CPTScatterPlot *vaccinePlot = [self createScatterPlotWithIdentifier:VACCINE_PLOT withLineColor:[CPTColor blackColor] withFillColor:[CPTColor blackColor]]; 
    CPTScatterPlot *interventionPlot = [self createScatterPlotWithIdentifier:INTERVENTION_PLOT withLineColor:[CPTColor blueColor] withFillColor:[CPTColor blueColor]]; 
    CPTScatterPlot *smokingHabitPlot = [self createScatterPlotWithIdentifier:SMOKING_HABIT_PLOT withLineColor:[CPTColor yellowColor] withFillColor:[CPTColor yellowColor]]; 
    CPTScatterPlot *menstrualPlot = [self createScatterPlotWithIdentifier:MENSTRUAL_PLOT withLineColor:[CPTColor redColor] withFillColor:[CPTColor redColor]]; 
    CPTScatterPlot *menstrualTreatmentPlot = [self createScatterPlotWithIdentifier:MENSTRUAL_TREATMENT_PLOT withLineColor:[CPTColor orangeColor] withFillColor:[CPTColor orangeColor]]; 
    CPTScatterPlot *psychomotorMilestonePlot = [self createScatterPlotWithIdentifier:PSYCHOMOTOR_MILESTONE_PLOT withLineColor:[CPTColor purpleColor] withFillColor:[CPTColor purpleColor]]; 

    [graph addPlot:vaccinePlot toPlotSpace:plotSpace]; 
    [graph addPlot:diagnosticPlot toPlotSpace:plotSpace]; 
    [graph addPlot:interventionPlot toPlotSpace:plotSpace]; 
    [graph addPlot:smokingHabitPlot toPlotSpace:plotSpace]; 
    [graph addPlot:menstrualPlot toPlotSpace:plotSpace]; 
    [graph addPlot:menstrualTreatmentPlot toPlotSpace:plotSpace]; 
    [graph addPlot:psychomotorMilestonePlot toPlotSpace:plotSpace]; 
} 

-(CPTScatterPlot *)createScatterPlotWithIdentifier:(NSString *)identifier withLineColor:(CPTColor *)lineColor withFillColor:(CPTColor *) fillColor{ 
    CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] init]; 
    dataSourceLinePlot.identifier = identifier; 

    CPTMutableLineStyle *lineStyle = [dataSourceLinePlot.dataLineStyle mutableCopy]; 
    lineStyle.lineWidth    = 3.0; 
    lineStyle.lineColor    = lineColor; 
    dataSourceLinePlot.dataLineStyle = lineStyle; 
    CPTPlotSymbol *plotSymbol2 = [CPTPlotSymbol ellipsePlotSymbol]; 
    plotSymbol2.fill    = [CPTFill fillWithColor:fillColor]; 
    plotSymbol2.size    = CGSizeMake(10.0, 10.0); 
    dataSourceLinePlot.plotSymbol = plotSymbol2; 

    return dataSourceLinePlot; 
} 

-(void)generateData{ 
    NSMutableArray *data = [NSMutableArray array]; 

    [data addObject:[self createDiagnosticData]]; 
    [data addObject:[self createVaccineData]]; 
    [data addObject:[self createInterventionData]]; 
    [data addObject:[self createSmokingHabitData]]; 
    [data addObject:[self createMenstrualData]]; 
    [data addObject:[self createMenstrualTreatmentData]]; 
    [data addObject:[self createPsychomotorMilestoneData]]; 
    self.plotData = data; 
} 

#pragma mark - 
#pragma mark Plot Data Source Methods 

-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot 
{ 
    NSLog(@"numberOfRecordsForPlot"); 
    if ([plot.identifier isEqual:DIAGNOSTIC_PLOT]) { 
     NSMutableArray *data = self.plotData[0]; 
     return data.count; 
    }else if([plot.identifier isEqual:VACCINE_PLOT]){ 
     NSMutableArray *data = self.plotData[1]; 
     return data.count; 
    } else if([plot.identifier isEqual:INTERVENTION_PLOT]){ 
     NSMutableArray *data = self.plotData[2]; 
     return data.count; 
    } else if([plot.identifier isEqual:SMOKING_HABIT_PLOT]){ 
     NSMutableArray *data = self.plotData[3]; 
     return data.count; 
    } else if([plot.identifier isEqual:MENSTRUAL_PLOT]){ 
     NSMutableArray *data = self.plotData[4]; 
     return data.count; 
    } else if([plot.identifier isEqual:MENSTRUAL_TREATMENT_PLOT]){ 
     NSMutableArray *data = self.plotData[5]; 
     return data.count; 
    } else if([plot.identifier isEqual:PSYCHOMOTOR_MILESTONE_PLOT]){ 
     NSMutableArray *data = self.plotData[6]; 
     return data.count; 
    } 
    return 0; 
} 

-(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{ 
    NSLog(@"numberForPlot"); 
    if ([plot.identifier isEqual:DIAGNOSTIC_PLOT]) { 
     NSMutableArray *data = self.plotData[0]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     if ([str intValue]==0) { 
      return nil; 
     } 
     return data[index][@(fieldEnum)]; 
    }else if([plot.identifier isEqual:VACCINE_PLOT]){ 
     NSMutableArray *data = self.plotData[1]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     return data[index][@(fieldEnum)]; 
    }else if([plot.identifier isEqual:INTERVENTION_PLOT]){ 
     NSMutableArray *data = self.plotData[2]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     return data[index][@(fieldEnum)]; 
    }else if ([plot.identifier isEqual:SMOKING_HABIT_PLOT]) { 
     NSMutableArray *data = self.plotData[3]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     if ([str intValue]==0) { 
      return nil; 
     } 
     return data[index][@(fieldEnum)]; 
    }else if ([plot.identifier isEqual:MENSTRUAL_PLOT]) { 
     NSMutableArray *data = self.plotData[4]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     if ([str intValue]==0) { 
      return nil; 
     } 
     return data[index][@(fieldEnum)]; 
    }else if ([plot.identifier isEqual:MENSTRUAL_TREATMENT_PLOT]) { 
     NSMutableArray *data = self.plotData[5]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     if ([str intValue]==0) { 
      return nil; 
     } 
     return data[index][@(fieldEnum)]; 
    }else if([plot.identifier isEqual:PSYCHOMOTOR_MILESTONE_PLOT]){ 
     NSMutableArray *data = self.plotData[6]; 
     NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])]; 
     return data[index][@(fieldEnum)]; 
    } 
    return nil; 
} 
+0

क्या आपको कोई समाधान मिला? – Iducool

+0

अंत में मैंने पाया। मेरे मामले में मेरा व्यू कंट्रोलर स्लाइड व्यू कंट्रोलर में है और स्लाइड व्यू में पैन इशारा है। वह पैन इशारा स्क्रॉल के साथ संघर्ष कर रहा था। इसलिए, यदि कोई ऐसे मुद्दों से पीड़ित है तो जेश्चर या किसी भी कस्टम टच इवेंट हैंडलिंग की तलाश करें। – Iducool

उत्तर

0

आप अपनी पुस्तक को देखने की सामग्री आकार रीसेट है? यदि नहीं, तो इसे स्कैटरप्लॉट के फ्रेम आकार पर रीसेट करें यदि यह केवल स्क्रॉल व्यू के अंदर दिखाई देता है।

+0

मेरे पास स्क्रॉल व्यू नहीं है। स्क्रॉल ScatterPlot का मालिक है। – oremag14jf

+0

फिर क्या आप UIScrollView में शामिल करने का प्रयास करते हैं? या स्कैटर प्लॉट के फ्रेम को बदलें ताकि यह आपके फ्रेम सीमाओं में समायोजित हो सके। – Rajesh

+0

मैं इसे UIScrollView में शामिल नहीं करना चाहता हूं। ग्राफ अच्छी तरह से दिखाता है, ज़ूम अच्छी तरह से काम करता है लेकिन जब मैं दूसरी तरफ स्क्रॉल करता हूं, तो स्क्रॉल ग्राफ़ इसे रोकता है। – oremag14jf

संबंधित मुद्दे