美文网首页
通过CADisplayLink实现图片自转动画效果

通过CADisplayLink实现图片自转动画效果

作者: afstand距离 | 来源:发表于2017-12-16 20:06 被阅读0次

    什么是CADisplayLink

    点进CADisplayLink的头文件我们能看到,其实他的方法并不多,而且他的功能很单一,就是作为一个定时器的存在。

    不过既然苹果专门提供了这么一个类,就一定是有他的存在意义的。他的优势就在于他的执行频率是根据设备屏幕的刷新频率来计算的。换句话讲,他也是时间间隔最准确的定时器。

    使用实例

    定义属性

    @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](https://img.haomeiwen.com/i9517141/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
    {
        // 规定时间内转动的角度 == 时间 * 速度
        CGFloat ang = self.link.duration * 5;
        self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, ang);
    }
    
    
    效果图.gif

    相关文章

      网友评论

          本文标题:通过CADisplayLink实现图片自转动画效果

          本文链接:https://www.haomeiwen.com/subject/mrkewxtx.html