我正在开发一个应用程序,我必须在 UILabel 中显示一个句子,几秒钟后,第一个单词应该动画放大和缩小,然后是第二个单词,依此类推,直到整个句子完成。
现在问题是我得到了大量关于动画整个 UILabel 的教程,但我无法在特定索引处为单个单词制作动画。
我正在开发一个应用程序,我必须在 UILabel 中显示一个句子,几秒钟后,第一个单词应该动画放大和缩小,然后是第二个单词,依此类推,直到整个句子完成。
现在问题是我得到了大量关于动画整个 UILabel 的教程,但我无法在特定索引处为单个单词制作动画。
我以字符串形式存储了整个故事,然后使用“componentsSeparatedByString”函数创建了 nsmutable 数组(使用空格作为分隔符),我从中为每个数组创建了 uilabel,这样我在不同的标签中获得了句子/故事的所有单词,其中我突出显示所需的标签。
试试这个代码...
- (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];
});
}