Mac 之動畫

1、自旋轉動畫

- (void)showRotateAnimation:(NSImageView *)imageView {
    CABasicAnimation *anim2 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    anim2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
    anim2.removedOnCompletion = YES;
    anim2.fillMode = kCAFillModeForwards;
    NSNumber* toValue = [NSNumber numberWithFloat:360 * (M_PI / 180.0f)];
    NSNumber* fromValue = [NSNumber numberWithFloat:(0.0f) * (M_PI / 180.0f)];
    
    anim2.fromValue = toValue;
    anim2.toValue = fromValue;
    anim2.repeatCount = HUGE_VALF;
    anim2.duration = 1.0f;
    
    /*
     * 1、設置中心點,要不然默認繞左下角旋轉了
     * 2、提前存一下layer.frame,要不然設置中心點後,旋轉會有偏移
     */
    CGRect oldRect = imageView.layer.frame;
    imageView.layer.anchorPoint = CGPointMake(0.5f, 0.5f);
    imageView.layer.frame = oldRect;

    [imageView.layer addAnimation:anim2 forKey:@"transform"];
}
    //需要延時一下,要不然不執行動畫
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self showRotateAnimation:self.rotateImageView];
    });

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章