IOS中UIImageView方法實現簡單動畫
查閱UIImageView文檔時,發現UIImageView有一組關于動畫的方法/參數,可以實現簡單的動畫。包括:
animationImages;highlightedAnimationImages;animationDuration;animationRepeatCount;- startAnimating;- stopAnimating;- isAnimating;
上面的這組方法很簡單,一目了然:設置好動畫的圖片、動畫時間、重復次數,就可以開始動畫了。
下面用代碼舉個例子。
上面這張圖,分成16份,播放出來:
self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test.jpg"]];[self.view addSubview:self.imageView];self.imageView.frame = CGRectMake(0, 0, 150, 450);self.imageView.animationImages = @[[UIImage imageNamed:@"f-0.jpg"],[UIImage imageNamed:@"f-1.jpg"],[UIImage imageNamed:@"f-2.jpg"],[UIImage imageNamed:@"f-3.jpg"],[UIImage imageNamed:@"f-4.jpg"],[UIImage imageNamed:@"f-5.jpg"],[UIImage imageNamed:@"f-6.jpg"],[UIImage imageNamed:@"f-7.jpg"],[UIImage imageNamed:@"f-8.jpg"],[UIImage imageNamed:@"f-9.jpg"],[UIImage imageNamed:@"f-10.jpg"],[UIImage imageNamed:@"f-11.jpg"],[UIImage imageNamed:@"f-12.jpg"],[UIImage imageNamed:@"f-13.jpg"],[UIImage imageNamed:@"f-14.jpg"],[UIImage imageNamed:@"f-15.jpg"],];self.imageView.animationDuration = 5.0;self.imageView.animationRepeatCount = 0;[self.imageView startAnimating];
動畫如下圖所示:
動畫勉強可以,用來播放簡單動畫差強人意。
然而這種方法問題不少。
占資源:數十張圖片,無論是放在Bundle里,還是加載到內存中,對于這樣一個簡單動畫來說,似乎都占地兒太多了。
效果不咋地:主要也還是圖片數量不足;然而如果圖片數量太多,加上速度要求過快,參見問題1;
無法實現細膩的、動態的動畫:只能實現一些簡單粗暴的動畫,比如自定義的加載動畫;
而且,還有更好的替代方式,比如直接播放gif動畫,簡單方便。
對于細膩復雜的動畫,就需要調用Core Animation了。
綜上,這種方法是個雞肋。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答