您的位置:首页 > 其它

喷枪打字效果(实现文字一个一个出现)

2016-01-29 00:18 316 查看
这是自己在闲暇时间写的demo,主要用于在项目开发中,实现文字一个一个输出来的效果

1.创建Label

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0 , 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
label.adjustsFontSizeToFitWidth = YES;//适应label大小
[self.view addSubview:label];
self.str1 =
@"夏小汐一个平凡到不能在平凡的女孩,一直相信着长大就会遇见属于自己的王子。但在樱花高中遇见了陌亦夜和伊辰这两个自己无法触及的男神以后,她的烦恼就没有停止过。明明知道就算知道了喜欢谁又能怎么样!但为了让自己的青春不留下遗憾,夏小汐鼓起勇气向自己喜欢的男神告白,开始了自己的初恋。但好景不长,到后来夏小汐才知道所有的一切都是自己的一厢情愿,分手后的夏小汐开始变得坚强;当她华丽的转身归来之时,曾经的那个男神居然说要回到自己的身边,但那时候的夏小汐身边已经出现了一个一直陪伴他的韩国当红明星安亦北,夏小汐究竟会如何选择?是选择曾经的爱;还是现在没有发现的爱......但夏小汐注定是一个幸运的女孩!";


2.开辟子线程用于实现动画 子线程的方法是:animationForShowtitleLableBigLabelText

NSThread *thred = [[NSThread alloc]initWithTarget:self selector:@selector(animationForShowtitleLableBigLabelText) object:nil];
[thred start];


3.线程执行的方法

- (void)animationForShowtitleLableBigLabelText
{
//这是子线程里处理动画的方式 str1是我要处理的文本 , self.titleLableBig 是我用于显示这个文本的label  下面是执行动画的循环 一共执行 [_str1 length] 是字符串的长度 每执行一次,在主线程之中刷新ui 子线程休眠0.1秒中用于显示 每次文本的不同 就显示出 上一次笔者一次 少一个文本的效果了
for (NSInteger i = 0 ; i < [_str1 length] ;i++)
{
[self performSelectorOnMainThread:@selector(refreUIFortitleLableBigLabelText:) withObject:[_str1 substringWithRange:NSMakeRange(0,i+1)]waitUntilDone:YES];
[NSThread sleepForTimeInterval:0.1f];
}

}


3.给Label赋值

- (void)refreUIFortitleLableBigLabelText:(NSString *)str
{
self.titleLableBig.text = str;
}


这里用到了多线程开发,有时候我们需要多行同时输出,我们可以多建几个Label,给每个Label开辟一条线程,实现同时多行输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: