iOS:NSString的列格式在UITextView中不起作用?
我正在开发一个iPad应用程序,我需要能够将屏幕上的一些输出格式化为列格式。这与我的问题类似: 不幸的是,我没有看到同样的结果。我的代码如下: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
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
您可以发布一个屏幕截图,说明它们在控制台中的外观与在文本视图中的外观吗?完成,编辑问题