2

我需要为标签文本设置动画@"text . ", @"text . ", @"text . ", @"text ."

所以用户只会看到点动画。我对标签文本使用中心对齐。

我为此目的使用计时器:

- (void)processTimerFired:(NSTimer *)timer {
    NSMutableDictionary *dict = [timer userInfo];
    NSMutableString *string = [[dict objectForKey:@"label"] mutableCopy];
    int dotNumber = [[dict objectForKey:@"dot"] intValue];
    if (dotNumber == 3) {
        dotNumber = 1;
    }
    else {
        dotNumber += 1;
    }

    [dict setObject:@(dotNumber) forKey:@"dot"];

    for (int i = 1; i < 4; i++) {
        if (i == dotNumber) {
            [string appendString:@"."];
        }
        else {
            [string appendString:@" "];
        }
    }

    self.informationLabel.text = string;
}

在 iOS 6 上一切正常,但在 iOS 7 上,xcode 似乎减少了空格的数量,所以文本的来源总是变得不同。这就是为什么文本似乎动摇的原因。

我尝试在末尾添加“+”进行测试。一切都变好了。所以看起来xcode只有在之后没有其他符号时才会删除“多余的”空格。

4

2 回答 2

0

我正在对这个问题进行测试,我看到你需要将文本居中。那是我的代码:

self.text = @[@"Text.  ",@"Text . ", @"Text  ."];
[self.shorLabel setTextAlignment:NSTextAlignmentCenter];
[self doAnimation:@0];

和 doAnimation 方法:

- (void) doAnimation: (NSNumber *)index
{
    int indexInt = ([index intValue] +1)%3;
    [self.shorLabel setText:self.text[indexInt]];
    [self.shorLabel sizeToFit];
    [self.shorLabel setFrame:CGRectMake((self.view.frame.size.width - self.shorLabel.frame.size.width)/2, self.shorLabel.frame.origin.y, self.shorLabel.frame.size.width, self.shorLabel.frame.size.height)];
    [self performSelector:@selector(doAnimation:) withObject:@(indexInt) afterDelay:0.2];
}
于 2013-10-04T09:06:56.263 回答
0

如果你用@" "Unicode 不可破坏的空间@" "(在 Mac 上由 Alt-space 获得)替换空间怎么办?

于 2013-10-04T09:10:04.280 回答