通過CADisplayLink實現(xiàn)圖片自轉(zhuǎn)動畫效果

什么是CADisplayLink

點進(jìn)CADisplayLink的頭文件我們能看到,其實他的方法并不多,而且他的功能很單一,就是作為一個定時器的存在。

不過既然蘋果專門提供了這么一個類,就一定是有他的存在意義的。他的優(yōu)勢就在于他的執(zhí)行頻率是根據(jù)設(shè)備屏幕的刷新頻率來計算的。換句話講,他也是時間間隔最準(zhǔn)確的定時器。

使用實例

定義屬性

@interface ViewController ()
@property(strong,nonatomic) CADisplayLink *link;
@property(strong,nonatomic) UIImageView *imageView;
@end
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.imageView=[[UIImageView alloc] initWithFrame:CGRectMake(160, 160, 50, 50)];![效果圖.gif](http://upload-images.jianshu.io/upload_images/9517141-14a94b87d5b5a105.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    self.imageView.image=[UIImage imageNamed:@"loading_blu"];
    [self.view addSubview:self.imageView];
    [self.link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}

- (CADisplayLink *)link
{
    if (!_link) {
        self.link = [CADisplayLink displayLinkWithTarget:self selector:@selector(up)];
    }
    return _link;
}

- (void)up
{
    // 規(guī)定時間內(nèi)轉(zhuǎn)動的角度 == 時間 * 速度
    CGFloat ang = self.link.duration * 5;
    self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, ang);
}

效果圖.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容