0

我正在开发一个应用程序,我必须在 UILabel 中显示一个句子,几秒钟后,第一个单词应该动画放大和缩小,然后是第二个单词,依此类推,直到整个句子完成。

现在问题是我得到了大量关于动画整个 UILabel 的教程,但我无法在特定索引处为单个单词制作动画。

4

2 回答 2

1

我以字符串形式存储了整个故事,然后使用“componentsSeparatedByString”函数创建了 nsmutable 数组(使用空格作为分隔符),我从中为每个数组创建了 uilabel,这样我在不同的标签中获得了句子/故事的所有单词,其中我突出显示所需的标签。

于 2013-04-22T06:40:40.250 回答
0

试试这个代码...

- (void)animateLableString:(NSString*)text delayInterval:(NSTimeInterval)delay
     {    
        [self.label setText:@""];

     for (int i=0; i<text.length; i++)
     {
       dispatch_async(dispatch_get_main_queue(),
        ^{
            [self.label setText:[NSString stringWithFormat:@"%@%C", self.label.text, [text 
             characterAtIndex:i]]];
             label.font = [UIFont boldSystemFontOfSize:45]; 
             label.transform = CGAffineTransformScale(messageLabel.transform, 0.25, 0.25); 

           [UIView animateWithDuration:1.0 animations:^{
            label.transform = CGAffineTransformScale(messageLabel.transform, 4, 4);
            }];
            });

            [NSThread sleepForTimeInterval:delay];
        }
    }

在你想开始动画的地方调用它......

-(void)someMethod
{

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
    ^{
        [self animateLableString:@"This is animating" delayInterval:0.5];
    });
}
于 2013-04-19T06:53:38.330 回答