在Core Plot,iOS中居中多线标签

时间:2013-03-09 01:35:06

标签: ios objective-c core-plot labels

我正在开发Core Plot项目并遇到了问题。我的X轴标签都是多行。我希望它们完全居中,到目前为止我能够做到的唯一方法是手动将空格添加到作为标签的NSString。请参阅下面的代码......

 NSDictionary *dataTemp=[NSDictionary dictionaryWithObjectsAndKeys:white,@"      
 White\rBuilding\r(220 max)",rec,@"Rec. Hall\r(240 max)",im,@"    IM\rBuilding\r(60 
 max)",fit,@"Fitness\r   Loft\r(40 max)",nil];

我认为有一种方法可以通过编程方式对齐标签,但我还没有找到它。我很感激任何帮助。以下是图表标签的截图

enter image description here

这是我定义x轴标签的代码......

//Array containing all the names that will be displayed on the X axis
dates = [NSArray arrayWithObjects:@"Rec. Hall\r(240 max)", @"  White\rBuilding\r(220 
max)", @"    IM\rBuilding\r(60 max)",
         @"Fitness\r   Loft\r(40 max)",  nil];

这是我在图表上制作标签的代码

 //X labels
int labelLocations = 0;
NSMutableArray *customXLabels = [NSMutableArray array];
for (NSString *day in dates) {
    CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:day 
textStyle:x.labelTextStyle];
    newLabel.tickLocation   = [[NSNumber numberWithInt:labelLocations] decimalValue];
    newLabel.offset         = x.labelOffset + x.majorTickLength;
    [customXLabels addObject:newLabel];
    labelLocations++;
    [newLabel release];
}
x.axisLabels                    = [NSSet setWithArray:customXLabels];

2 个答案:

答案 0 :(得分:1)

这应该有效 - 您应该尝试使用标签上的textAlignment属性:

label.textAlignment = NSTextAlignmentCenter; 

正如@Martin指出的那样,您还可以添加UILineBreakModeWordWrap,因此仅在整个单词后才会出现换行符:

label.lineBreakMode = UILineBreakModeWordWrap;

答案 1 :(得分:0)

确保创建标签时使用的文字样式(x.labelTextStyle)包含以下属性设置:

textStyle.textAlignment = CPTTextAlignmentCenter;