加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 动画后我的CALayer变换保持不变,但视角消失了

发布时间:2020-12-14 19:39:53 所属栏目:百科 来源:网络整理
导读:我有以下代码在Y轴上将CALayer旋转-45度: #define D2R(x) (x * (M_PI/180.0))- (void) swipe:(UISwipeGestureRecognizer *)recognizer{ CATransform3D transform = CATransform3DMakeRotation(D2R(-45),1.0,0); transform.m34 = -1.0 / 850; CABasicAnimati
我有以下代码在Y轴上将CALayer旋转-45度:

#define D2R(x) (x * (M_PI/180.0))

- (void) swipe:(UISwipeGestureRecognizer *)recognizer
{        
    CATransform3D transform = CATransform3DMakeRotation(D2R(-45),1.0,0);
    transform.m34 = -1.0 / 850;

    CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath: @"transform"];
    transformAnimation.fillMode = kCAFillModeForwards;
    transformAnimation.removedOnCompletion = NO;
    transformAnimation.toValue = [NSValue valueWithCATransform3D:transform];
    transformAnimation.duration = 0.5;

    [self.layer addAnimation:transformAnimation forKey:@"transform"];
}

动画是有效的,除了它没有透视结束 – 如果我正确理解事物,则忽略我的m34设置.

中途:

在末尾:

我究竟做错了什么?

解决方法

动画仅影响动画期间视图的外观.动画结束后,它不会应用于视图.你需要自己做.在添加动画后,我正在猜这样的东西:

self.layer.transform = transform;

您可以立即执行此操作,因为动画将隐藏它直到动画完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读