• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - CALayer "contents"属性上的隐式动画

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:35:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

根据核心动画文档,设置图层内容应触发隐式 0.25 动画,该动画将在新旧图像之间转换。 我还看到很多地方人们都在问如何删除这个隐式动画,但由于某种原因,当我在我的项目中尝试这个时,我会立即交换图像。 在文档中阅读了更多内容,我看到这段代码被剪断了:

- (id<CAAction>)actionForLayerCALayer *)theLayer
                        forKeyNSString *)theKey {
    CATransition *theAnimation=nil;

    if ([theKey isEqualToString"contents"]) {

        theAnimation = [[CATransition alloc] init];
        theAnimation.duration = 1.0;
        theAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
        theAnimation.type = kCATransitionPush;
        theAnimation.subtype = kCATransitionFromRight;
    }
    return theAnimation;
}

这意味着“内容”不是隐式动画。

我很想更好地理解这一点。



Best Answer-推荐答案


好的,我正在从我的应用程序中复制一些代码。首先,我通常不是使用 alloc..init.. 而是使用 +animation 来获取 CATransition。其次,我没有看到您正在向图层添加过渡。第三,我不确定 CATransition 是隐式动画的,CALayer 属性是的。

CATransition *transition = [CATransition animation];
    transition.duration = 1;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush;
    transition.subtype = slideCATransitionCompareTable[ arc4random() % 4]; //to get a random subtype 
    [self.slideShowReceiptImageView.layer addAnimation:transition forKey:nil];

关于ios - CALayer "contents"属性上的隐式动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17744359/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap