SKLabelNode中显示带有多行的标签时,我有些麻烦。首先,我知道没有lines属性或任何此类属性。我到那里有可能可以做到的GitHub项目,但我宁愿不使用它们。

我需要多行内容的原因是我的应用内购买的工作方式。有时,描述可能无法全部排成一行。例如,以最大的DynamicType标题字体大小呈现的字符串:

Cheat and get 25% of the points needed for the "Chaos" theme!

不能以纵向布局适合任何iOS手机。我试过调用此函数:
-(NSString*)autoInsertLineBreaksInString:(NSString*)string {
    NSLog(@"Function called with %@", string);
    NSMutableArray* arrayOfSpaceIndexes = [NSMutableArray array];
    NSMutableString* returnString = [string mutableCopy];
    for (int i = 0; i < string.length; i++) {
        if ([string characterAtIndex:i] == [@" " characterAtIndex:0]) {
            NSLog(@"Adding %i to array of space indexes.", i);
            [arrayOfSpaceIndexes addObject:@(i)];
        } else {
            NSLog(@"Not adding %i to array of space indexes.", i);
        }
    }
    [returnString replaceCharactersInRange:NSMakeRange([[arrayOfSpaceIndexes objectAtIndex:(NSUInteger)(floorf((arrayOfSpaceIndexes.count - 1) / 2))] unsignedIntegerValue], 1) withString:@"\n"];
    NSLog(@"Retruning %@", returnString);
    return returnString;
}

这会在正确的位置插入\n并输出...
Cheat and get 25% of the
points needed for the "Chaos" theme.

...但是标签节点将\n解释为一个空格,给了我原始的字符串。我真的不想使用第二个标签节点。关于如何解决此问题的任何想法?

最佳答案

将评论形式化为答案:如果您选择使用SKLabelNode的多个实例,则可以创建包装SKNode并将所有每个SKLabelNode添加到包装器中。将包装器添加到场景时,只需管理一个包装器,即可将所有标签节点一起隐藏/显示/移动/等。

关于ios - SKLabelNode多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31351798/

10-09 08:54