iOS 動畫之Spring動畫、Block動畫、GIF圖

joker_king發表於2018-12-20

Spring動畫

Spring動畫是一種特殊的動畫曲線,自從iOS7之後開始被廣泛應用在系統動畫中。所謂的Spring動畫就是動畫在執行的過程中會有一個放大的效果,然後在回去。 建立Spring動畫用到了下面的一個方法

- (void)springAnimation{
//Damping:阻尼值0 - 1、阻尼值越小動畫越明顯
//Velocity:初始速度
[UIView animateWithDuration:2.0 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:20
 options:UIViewAnimationOptionRepeat animations:^{
    self.redView.frame = CGRectMake(100, 300, 200, 200);
    self.redView.backgroundColor =[UIColor blackColor];
} completion:nil];
}
複製程式碼

Block動畫

Block簡單動畫

示例:在Block的回撥方法內改變動畫的顏色

[UIView animateWithDuration:5 animations:^{
//需要改變的屬性
self.redView.backgroundColor = [UIColor cyanColor];
}];
複製程式碼

Block複雜動畫

相比較Block的簡單動畫來說Block的複雜動畫能夠在動畫完成後,對動畫做一些其他的操作 示例:在動畫過程中改變將檢視的顏色改為黃色,在動畫結束的時候將檢視的顏色改為紅色。

[UIView animateWithDuration:2.0 animations:^{
self.redView.backgroundColor = [UIColor yellowColor];
} completion:^(BOOL finished) {
     if (finished) {//動畫結束
       self.redView.backgroundColor = [UIColor redColor];
     }
}];
複製程式碼

GIF動圖

簡單來說,gif圖片就是將一組圖片放在一起,以極快的速度切換圖片,這樣就能實現一個動畫的效果。西面來看具體的做法。

  • 首先,我們建立一個可變陣列把我們需要用到的圖象儲存起來。
NSMutableArray *imageArray = [NSMutableArray array];
        for (int i = 1; i < 14; i++) {
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"1-%d.tiff",i]];
            [imageArray addObject:image];
        }
複製程式碼
  • 然後建立一個imageView來顯示圖片
    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
    imageView.center = self.view.center;
    imageView.animationImages = imageArray;
    imageView.animationDuration = 0.5;//動畫執行的時間
    imageView.animationRepeatCount = 10;//動畫重複次數
    [self.view addSubview:_imageView];//開啟動畫
    [imageView startAnimating];
複製程式碼

在實際使用的過程中,通常我們會在不同的地方,來執行動畫屬性的操作,具體情況按照需求來實現。

相關文章