2012-04-10 11 views
1

コアビューを6個追加した親ビューがあります(これはうまくいきますが何らかの理由で2番目のチャートがすべて表示されます) !self.view.bounds]自動リリース:(空)renderInLayer { CPTXYGraph *グラフ= [[[CPTXYGraphのalloc] initWithFrame - ここで)Core-Plot iOS - 2番目のチャートのみに複数のチャートを追加する

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view from its nib. 
if(!chartVC1){ 
    chartVC1 = [[ChartVC alloc] initWithIdentifier:@"plot1"]; 
    //[chartVC1 setKPlotIdentifier:@"plot1"]; 
    [chartVC1.view setFrame:self.Panel1.frame]; 
} 
[self.Panel1 addSubview:chartVC1.view]; 

if(!chartVC3){ 
    chartVC3 = [[ChartVC alloc] initWithIdentifier:@"plot2"]; 
    [chartVC3.view setFrame:self.Panel3.frame]; 
} 
[self.Panel3 addSubview:chartVC3.view]; 

if(!chartVC2){ 
    chartVC2 = [[ChartVC alloc] initWithIdentifier:@"plot3"]; 
    [chartVC2.view setFrame:self.Panel2.frame]; 
} 

[self.Panel2 addSubview:chartVC2.view]; 

if(!chartVC4){ 
    chartVC4 = [[ChartVC alloc] initWithIdentifier:@"plot4"]; 
    [chartVC4.view setFrame:self.Panel4.frame]; 
} 
[self.Panel4 addSubview:chartVC4.view]; 

if(!chartVC5){ 
    chartVC5 = [[ChartVC alloc] initWithIdentifier:@"plot5"]; 
    [chartVC5.view setFrame:self.Panel5.frame]; 

} 
[self.Panel5 addSubview:chartVC5.view]; 

if(!chartVC6){ 
    chartVC6 = [[ChartVC alloc] initWithIdentifier:@"plot6"]; 
    [chartVC6.view setFrame:self.Panel6.frame]; 
} 
[self.Panel6 addSubview:chartVC6.view]; 
} 

は、クラスChartVC

のために私のコードの一部であります];

[self addGraph:graph toHostingView:self.view]; 
[self applyTheme:nil toGraph:graph withDefault:[CPTTheme themeNamed:kCPTDarkGradientTheme]]; 

//[self setTitleDefaultsForGraph:graph withBounds:self.view.bounds]; 
//[self setPaddingDefaultsForGraph:graph withBounds:self.view.bounds]; 

graph.plotAreaFrame.paddingTop = -20.0; 
graph.plotAreaFrame.paddingRight = -20.0; 
graph.plotAreaFrame.paddingBottom = -20.0; 
graph.plotAreaFrame.paddingLeft  = -20.0; 

graph.plotAreaFrame.plotArea.frame = self.view.bounds; 

graph.backgroundColor = [[UIColor whiteColor] CGColor]; 
// Grid line styles 
CPTMutableLineStyle *majorGridLineStyle = [CPTMutableLineStyle lineStyle]; 
majorGridLineStyle.lineWidth = 0.75; 
majorGridLineStyle.lineColor = [[CPTColor colorWithGenericGray:0.2] colorWithAlphaComponent:0.75]; 

CPTMutableLineStyle *minorGridLineStyle = [CPTMutableLineStyle lineStyle]; 
minorGridLineStyle.lineWidth = 0.25; 
minorGridLineStyle.lineColor = [[CPTColor whiteColor] colorWithAlphaComponent:0.1]; 

// Axes 
// X axis 
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet; 
CPTXYAxis *x   = axisSet.xAxis; 
x.labelingPolicy    = CPTAxisLabelingPolicyAutomatic; 
x.orthogonalCoordinateDecimal = CPTDecimalFromUnsignedInteger(0); 
x.majorGridLineStyle   = majorGridLineStyle; 
x.minorGridLineStyle   = minorGridLineStyle; 
x.minorTicksPerInterval  = 9; 
//x.title       = @"X Axis"; 
//x.titleOffset    = 35.0; 
NSNumberFormatter *labelFormatter = [[NSNumberFormatter alloc] init]; 
labelFormatter.numberStyle = NSNumberFormatterNoStyle; 
x.labelFormatter   = labelFormatter; 
[labelFormatter release]; 

// Y axis 
CPTXYAxis *y = axisSet.yAxis; 
y.labelingPolicy    = CPTAxisLabelingPolicyAutomatic; 
y.orthogonalCoordinateDecimal = CPTDecimalFromUnsignedInteger(0); 
y.majorGridLineStyle   = majorGridLineStyle; 
y.minorGridLineStyle   = minorGridLineStyle; 
y.minorTicksPerInterval  = 3; 
//y.labelOffset    = 5.0; 
//y.title       = @"Y Axis"; 
//y.titleOffset    = 30.0; 
y.axisConstraints    = [CPTConstraints constraintWithLowerOffset:0.0]; 

// Rotate the labels by 45 degrees, just to show it can be done. 
x.labelRotation = M_PI * 0.25; 

// Create the plot 
CPTScatterPlot *dataSourceLinePlot1 = [[[CPTScatterPlot alloc] init] autorelease]; 
dataSourceLinePlot1.identifier = [self kPlotIdentifier]; 
//NSLog(@"set identifier: %@", [self kPlotIdentifier]); 
dataSourceLinePlot1.cachePrecision = CPTPlotCachePrecisionDouble; 

CPTMutableLineStyle *lineStyle1 = [[dataSourceLinePlot1.dataLineStyle mutableCopy] autorelease]; 
lineStyle1.lineWidth     = 1.0; 
lineStyle1.lineColor     = [CPTColor redColor]; 
dataSourceLinePlot1.dataLineStyle = lineStyle1; 

dataSourceLinePlot1.dataSource = self; 
[graph addPlot:dataSourceLinePlot1]; 

// Plot space 
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromUnsignedInteger(0) length:CPTDecimalFromUnsignedInteger(kMaxDataPoints - 1)]; 
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromUnsignedInteger(0) length:CPTDecimalFromUnsignedInteger(100)]; 

} 

私は唯一の第一のチャートが表示された場合、問題は自分のせいだったと思うだろうが、すべての2番目のグラフが表示されるので、それは私にはどんな意味がありません。..

私の唯一の推測では、それはいくつかあるありますタイミング問題のようなものですが、デバッグして各グラフの作成を遅らせても差はありませんでした。

3番目、5番目のグラフを削除して、他のグラフが表示されても表示されなかった以前は私が本当に私を捨ててしまっていた。(すなわち、4番目に表示された最初のチャートだけが有効になっていた!)

私はちょうど問題なく一度に画面上の6つのチャートをサポートするために、非常に軽量であるとして、加速度計データをレンダリングするAppleデベロッパライブラリからコードを使用することができます。この感謝...

上の任意のヘルプ。 ..

コアプロットはちょうど...私が推測するタスクまでは思えない

答えて

1
あなたはグラフが表示されないが、それは常に同じものなので、私が疑われた言わなかった

ビュー階層に問題があります。各グラフの

`[chartVC1.view setFrame:self.Panel1.bounds];` 

`[chartVC1.view setFrame:self.Panel1.frame];` 

を変更してみてください。

+0

ビンゴ!魅力を取りました! フレームと境界が異なる理由はわかりません... –

関連する問題