iOS:NSString的列格式在UITextView中不起作用?

iOS:NSString的列格式在UITextView中不起作用?,ios,objective-c,string,multiple-columns,Ios,Objective C,String,Multiple Columns,我正在开发一个iPad应用程序,我需要能够将屏幕上的一些输出格式化为列格式。这与我的问题类似: 不幸的是,我没有看到同样的结果。我的代码如下: NSString* titleColumn = [[NSString stringWithFormat:@"%@", displayName] stringByPaddingToLength:25 withString:@" " startingAtIndex:0]; NSString* serializedValue = [[NSMu

我正在开发一个iPad应用程序,我需要能够将屏幕上的一些输出格式化为列格式。这与我的问题类似:

不幸的是,我没有看到同样的结果。我的代码如下:

    NSString* titleColumn = [[NSString stringWithFormat:@"%@", displayName] stringByPaddingToLength:25 withString:@" " startingAtIndex:0];
    NSString* serializedValue = [[NSMutableString alloc] init];
    NSString* valueAsString = [NSString stringWithFormat:@"%.03f", value];
    serializedValue = [serializedValue stringByAppendingFormat:@"%@%@", titleColumn, valueAsString];
在控制台中记录项目时,项目已正确对齐,但在将项目插入UITextView时,项目未对齐。这就是我在文本视图中粘贴它们的方式:

    NSMutableString* displayString = [[NSMutableString alloc] initWithString:@""];
    for (NSString* entry in textToDisplay)
    {
        NSLog(@"%@", entry);
        [displayString appendString:entry];
        [displayString appendString:@"\n"];
    }

    [self.fTextPanel setText:displayString];
你知道我做错了什么吗

编辑:

在日志中,它如下所示:

    Inclination              0.000  
    Version                  0.000  
    Inferior/Superior        0.000  
    Anterior/Posterior       0.500  

UITextView版本如下所示:

原因是,在绘制字符(glymphs)时,每个字符都有不同的宽度,即小c和大c字符的绘制宽度不同,因此无法工作。即使有两个长度相同但字符不同的字符串,图形文本的宽度也会不同

我建议您将两个文本视图并排,在一个文本视图中呈现标题,在下一个文本视图中呈现值

如果标题的数量很大,并且您启用了文本视图中的滚动,请使用UIScrollView的委托方法,当其中任何一个出现滚动时,请设置另一个的contentOffset,使其看起来像单个文本视图


希望这有帮助。

未对齐的原因是每个字符的宽度不同。显示此类信息的最佳方式是使用
UITableView
,您可以使用
title
subTitle
字段进行显示,或者您可以设计一个自定义
UITableView

您可以发布一个屏幕截图,说明它们在控制台中的外观与在文本视图中的外观吗?完成,编辑问题