Xcode 如何将标签核心图移到右侧?

Xcode 如何将标签核心图移到右侧?,xcode,core-plot,padding,Xcode,Core Plot,Padding,我使用以下方法显示绘图的标签: -(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index{ ... CPTTextLayer *label=[[CPTTextLayer alloc] initWithText:stringValue style:textStyle]; } 对于每个索引,都应该返回标签 我知道可以使用以下方法上下移动标签: plot.labelOffset=10; 问题是:

我使用以下方法显示绘图的标签:

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index{ 
 ... 
 CPTTextLayer *label=[[CPTTextLayer alloc] initWithText:stringValue style:textStyle];
 }
对于每个索引,都应该返回标签

我知道可以使用以下方法上下移动标签:

plot.labelOffset=10;
问题是:如何将标签向右移动一点? 我试着用

label.paddingLeft=50.0f


但是它不起作用。

在您的示例中添加填充确实起作用,但可能不是您所期望的方式。散点图和条形图将使标签位于每个数据点上方的中心(具有正偏移)。填充物使整个标签更宽,因此当居中时,测试显示为偏侧。这很难控制,尤其是如果标签文本的长度不同


有一个悬而未决的问题需要解决()。无法保证何时修复,但这是我们正在研究的问题。

我遇到了相同的问题,并提出了不同的解决方案

我决定使用CPTAxisLabel方法initWithContentLayer创建标签:

CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:labelStr  style:axisTextStyle];

CGSize textSize = [textLayer sizeThatFits];

// Calculate the padding needed to center the label under the plot record.
textLayer.paddingLeft = barCenterLeftOffset - textSize.width/2.0;

CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithContentLayer:textLayer];
此处,barCenterLeftOffset是打印记录中心的偏移量

我写了一篇关于这一点的文章:

我创建的使用此解决方案的演示项目位于:


您可以将CPTTextLayer子类化并包含偏移量

@interface WPTextLayer : CPTTextLayer

@property (nonatomic) CGPoint offset;

@end

@implementation WPTextLayer

-(void)setPosition:(CGPoint)position
{
    CGPoint p = CGPointMake(position.x + self.offset.x, position.y + self.offset.y);
    [super setPosition:p];
}
然后使用:

WPTextLayer *tLayer = [[WPTextLayer alloc] initWithText:@"blah" style:textStyle];
tLayer.offset = CGPointMake(3, -3);
return tLayer;

这可能会产生我不知道的后果,但到目前为止它似乎正在发挥作用。

也有同样的问题。要向左移动标签。现在有什么解决方案吗?增加标签文本层内的
paddingRight