实现原理比较简单,这里不做过多介绍.
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (copy , nonatomic)NSString *contentStr;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(animationLabel) object:nil];
[thread start];
self.contentStr = @"人生最宝贵的是生命,生命属于人只有一次。一个人的生命应当这样度过:当他回忆往事的时候,他不致因虚度年华而悔恨,也不致因碌碌无为而羞愧;在临死的时候,他能够说:“我的整个生命和全部精力,都已献给世界上最壮丽的事业——为人类的解放而斗争。”";
}
- (void)animationLabel
{
for (NSInteger i = 0; i < self.contentStr.length; i++)
{
[self performSelectorOnMainThread:@selector(refreshUIWithContentStr:) withObject:[self.contentStr substringWithRange:NSMakeRange(0, i+1)] waitUntilDone:YES];
[NSThread sleepForTimeInterval:0.3];
}
}
- (void)refreshUIWithContentStr:(NSString *)contentStr
{
self.titleLabel.text = contentStr;
}
最终效果: