如何将 NSString 对象中的字符转换为 UILabel 对象?

Posted

技术标签:

【中文标题】如何将 NSString 对象中的字符转换为 UILabel 对象?【英文标题】:How can I convert the characters in an NSString object to UILabel objects? 【发布时间】:2010-10-29 01:05:16 【问题描述】:

我试图弄清楚如何获取 NSString 对象中的单个字符并从中创建 UILabel,并将 UILabel 文本设置为单个字符。

我是 Cocoa 的新手,但到目前为止我有这个......

NSString *myString = @"This is a string object";

for(int i = 0; i < [myString length]; i++)

  //Store the character
  UniChar chr = [myString characterAtIndex:i];

  //Stuck here, I need to convert character back to an NSString object so I can...

  //Create the UILabel
  UILabel *lbl = [[UILabel alloc] initWithFrame....];
  [lbl setText:strCharacter];

  //Add the label to the view
  [[self view] addSubView:lbl];

除了我遇到的困难之外,我的方法已经感觉很老套了,但我还是个菜鸟,还在学习。任何有关如何解决此问题的建议都会非常有帮助。

非常感谢您的帮助!

【问题讨论】:

出于好奇,您为什么要这样做?您可能会创建大量 UILabel,但效率不高。 这只是一种快速测试我正在开发的游戏的一些游戏功能的方法。这是暂时的。 【参考方案1】:

您想将-substringWithRange: 与长度为 1 的子字符串一起使用。

NSString *myString = @"This is a string object";

NSView *const parentView = [self superview];
const NSUInteger len = [myString length];
for (NSRange r = NSMakeRange(0, 1); r.location < len; r.location += 1) 
    NSString *charString = [myString substringWithRange:r];

    /* Create a UILabel. */
    UILabel *label = [[UILabel alloc] initWithFrame....];
    [lbl setText:charString];

    /* Transfer ownership to |parentView|. */
    [parentView addSubView:label];
    [label release];

【讨论】:

以上是关于如何将 NSString 对象中的字符转换为 UILabel 对象?的主要内容,如果未能解决你的问题,请参考以下文章

JsonModel NSString 将 null 转换为空字符串

如何使用 RKValueTransformer 将 NSString 转换为 Core Data NSManagedObject

如何将 NSstring 转换为 NSerror 对象类型

如何将 NSString 转换为 NSData?并且数据与字符串内容相同

我如何将NSString转换为UTF-8以外的编码?

将NSDate转换为NSString