Ios 动画字符串(逐字符)不';在设置动画期间,不显示在UITextView上
我正在尝试为NSString设置动画,并使其逐个字符显示。 虽然我在NSLog中看到该函数确实起作用,但在动画期间,文本不会显示在UITExtView上,只有在动画结束时才会显示 我的代码:Ios 动画字符串(逐字符)不';在设置动画期间,不显示在UITextView上,ios,objective-c,multithreading,jquery-animate,uitextview,Ios,Objective C,Multithreading,Jquery Animate,Uitextview,我正在尝试为NSString设置动画,并使其逐个字符显示。 虽然我在NSLog中看到该函数确实起作用,但在动画期间,文本不会显示在UITExtView上,只有在动画结束时才会显示 我的代码: - (void)viewDidAppear:(BOOL)animated { [self performSelectorOnMainThread:@selector(startAnimation) withObject:nil waitUntilDone:NO]; } #pragma mark -
- (void)viewDidAppear:(BOOL)animated
{
[self performSelectorOnMainThread:@selector(startAnimation) withObject:nil waitUntilDone:NO];
}
#pragma mark - General Methods
- (void)animateCharacterByCharacter_text:(NSString *)text characterDelay:(NSTimeInterval)characterDelay
{
[self.textAbout setText:@""];
for (int i=0; i < text.length; i++)
{
NSString *textToSet = [NSString stringWithFormat:@"%@%c", self.textAbout.text, [text characterAtIndex:i]];
self.textAbout.text = textToSet;
NSLog(@"%@", textToSet);
[NSThread sleepForTimeInterval:characterDelay];
}
}
- (void)startAnimation
{
NSString *stringAbout = @"sfhasdf\nhajsbdh";
[self animateCharacterByCharacter_text:stringAbout characterDelay:0.5];
}
-(void)视图显示:(BOOL)动画
{
[self-performSelectorOnMainThread:@selector(startAnimation),对象:nil waitUntilDone:NO];
}
#pragma标记-一般方法
-(void)animateCharacterByCharacter_text:(NSString*)text characterDelay:(NSTimeInterval)characterDelay
{
[self.text关于setText:@”“;
for(int i=0;i
我也尝试过“dispatch\u async”,得到了同样的结果。
我做错了什么?不要使用
sleepForTimeInterval:
,因为它会阻止UI更新。相反,运行计时器,每次它触发时,将下一个字符添加到文本字段(完成后取消计时器)