【问题标题】:iOS: Column formatting for NSString not working in UITextView?iOS:NSString 的列格式在 UITextView 中不起作用?
【发布时间】:2014-01-10 05:00:04
【问题描述】:

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

How can I use the \t [tab] operator to format a NSString in columns?

我使用了该解决方案,不幸的是我没有看到相同的结果。我的代码如下:

    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 版本如下所示:http://imgur.com/vrUzybP,OYxGVd8

【问题讨论】:

  • 你能发一张他们在控制台中的样子和他们在 textview 中的样子的截图吗?
  • 完成,问题已编辑

标签: ios objective-c string multiple-columns


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    原因是因为在绘制字符(字形)时,每个字符会有不同的宽度,即字符小c和大C的绘制宽度不同,所以它不起作用。即使有两个长度相等但字符不同的字符串,绘图文本也会有不同的宽度。

    为此,我建议您将 两个 textView 并排,在一个 textVIew 中呈现标题,在下一个 TextView 中呈现值。

    如果标题数量很大,并且在textVIews中启用滚动,使用UIScrollView的委托方法,当其中一个出现scrollHappens时,设置另一个的contentOffset使其看起来像单个 TextView。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 2018-05-06
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      相关资源
      最近更新 更多