2013-10-04 49 views
2

我需要爲動畫標籤文字添加動畫@"text . ", @"text . ", @"text . ", @"text ."iOS 7多空間問題

因此,用戶只會看到點動畫。我使用標籤文本的中心對齊方式。

我使用計時器的目的:

- (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纔會刪除「多餘的」空格。

+0

是的,我檢查了它,似乎'UILabel'正在修剪文本 –

回答

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]; 
} 
+0

不,我需要TextAllignmentCenter –

+0

好吧,你可以採取另一種方法重新計算每一步的位置。 –

+0

是的,但我想找到更好的方法 –

0

如果更換的空間@" "以Unicode非易碎空間@" "(按Alt +空格鍵在Mac上獲得)是什麼?

+0

沒有幫助 –