iOS中 喷枪打字动画的实现

iOS中 喷枪打字动画的实现

实现原理比较简单,这里不做过多介绍.

 

#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;
}

 

 

最终效果:

图片 1

 

 

 

 

http://www.bkjia.com/IOSjc/1066537.htmlwww.bkjia.comtruehttp://www.bkjia.com/IOSjc/1066537.htmlTechArticleiOS中 喷枪打字动画的实现
实现原理比较简单,这里不做过多介绍. #import
[email protected]
ViewController ()@property (weak, nonatomic) IBOutlet UILab…

上篇介绍了动画中的view动画,也是我们最初学的动画,也是最常用的动画,通过不同的动画组合在一起可以达到非常好的效果,这篇来讲讲帧动画


帧动画

上篇介绍过了帧动画,顾名思义就是通过多张图片组合,然后一帧一帧的播放,像电影一样,不同view动画的是,系统提供了另一个类AnimationDrawable来使用帧动画,帧动画的使用也比较简单,首先,我们在res/drawable中定义一个xml,来存放我们的图片,代码所示:

frame_animation.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/image1" android:duration="500"/>
    <item android:drawable="@drawable/image2" android:duration="200"/>
    <item android:drawable="@drawable/image3" android:duration="100"/>

</animation-list>

然后将frame_animation.xml作为view的背景通过Drawable来播放:

  myView.setBackgroundResource(R.drawable.frame_animation);
  AnimationDrawable drawable= (AnimationDrawable) myView.getBackground();
  drawable.start();

但是注意的是,帧动画是引用图片来实现动画效果,如果图片过大,会造成OOM,帧动画比较简单,就不做过多的介绍了,到这里就结束了