1
我寫下面的代碼來顯示條形圖註釋。顯示註釋但出現意外的對齊/位置。 CPTextLayer的文本顯示在框架的左上角。我試圖在中心展示它。我已經使用CPTextLayer的背景圖像作爲背景顏色。請有過代碼 - 一看(symbolTextAnnotation是在界面decleared一個CPLayerAnnotation對象)核心繪圖CPTextLayer:文本與背景圖像對齊作爲背景顏色
-(void)barPlot:(CPBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index
{
CPXYGraph* graph = (CPXYGraph*)plot.graph;
NSNumber *value = [self numberForPlot:plot field:CPBarPlotFieldBarTip recordIndex:index];
if (symbolTextAnnotation) {
[graph.plotAreaFrame.plotArea removeAnnotation:symbolTextAnnotation];
symbolTextAnnotation = nil;
}
// Setup a style for the annotation
CPMutableTextStyle *hitAnnotationTextStyle = [CPMutableTextStyle textStyle];
hitAnnotationTextStyle.color = [CPColor whiteColor];
hitAnnotationTextStyle.fontSize = 9.0f;
hitAnnotationTextStyle.fontName = @"Helvetica-Bold";
// Determine point of symbol in plot coordinates
NSNumber *x = [NSNumber numberWithInt:index+1];
NSNumber *y = [NSNumber numberWithInt:0];
NSArray *anchorPoint = [NSArray arrayWithObjects:y, x, nil];
// Add annotation
// First make a string for the y value
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setMaximumFractionDigits:2];
NSString *yString = [formatter stringFromNumber:value];
// Now add the annotation to the plot area
UIImage *annotationBG = [UIImage imageNamed:@"annotation-bg.png"];
CPTextLayer *textLayer = [[[CPTextLayer alloc] initWithText:yString style:hitAnnotationTextStyle] autorelease];
textLayer.backgroundColor = [UIColor colorWithPatternImage:annotationBG].CGColor;
textLayer.frame = CGRectMake(0, 0, annotationBG.size.width, annotationBG.size.height);
symbolTextAnnotation = [[CPPlotSpaceAnnotation alloc] initWithPlotSpace:plot.plotSpace anchorPlotPoint:anchorPoint];
symbolTextAnnotation.contentLayer = textLayer;
symbolTextAnnotation.displacement = CGPointMake(-18.0f, 3.0f);
[graph.plotAreaFrame.plotArea addAnnotation:symbolTextAnnotation];
}
我試過了上面提到的解決方案,但輸出是一樣的。 – Sadat 2011-05-05 01:42:27
得到了解決方案。感謝您的信息。我已將CPTextLayer添加到CPLayer中,並根據需要爲CPLayer設置填充。這對我來說很好。 :) – Sadat 2011-05-05 02:12:26
薩達特,你介意分享你的代碼嗎?我使用類似的方法,但我看不到任何填充。 – 2012-06-19 12:44:37