ios – 我如何动画CAlayer的边界逐步显示图像?

ios – 我如何动画CAlayer的边界逐步显示图像?,第1张

概述出于某些原因,我试图避免使用CAScrollLayer来执行此 *** 作.我要追求的效果是逐步显示(从下到上)CALayer的内容(我之前加载的一个png).所以我想这样做: layer.anchorPoint = CGPointMake(.5, 1); CABasicAnimation* a = [CABasicAnimation animationWithKeyPath:@"bounds.s 出于某些原因,我试图避免使用CAScrollLayer来执行此 *** 作.我要追求的效果是逐步显示(从下到上)CALayer的内容(我之前加载的一个png).所以我想这样做:

layer.anchorPoint = CGPointMake(.5,1);    CABasicAnimation* a = [CABasicAnimation animationWithKeyPath:@"bounds.size.height"];    a.timingFunction = [camediatimingFunction functionWithname:kcamediatimingFunctionEaseInEaSEOut];    a.fillMode = kCAFillModeBoth;    a.removedOnCompletion = NO;    a.duration = 1;    a.fromValue = [NSNumber numberWithfloat:0.];    a.tovalue = [NSNumber numberWithfloat:layer.bounds.size.height];    [layer addAnimation:a forKey:nil];

这个问题是你可以告诉图层的内容是用边界缩放的.我试图改变界限,但内容始终保持原始大小,因此有效地界限剪辑图像,并且当我增加bounds.height时,图像“显示”本身.

关于如何实现它或者我可能缺少什么的任何想法?

解决方法 好吧,我让它工作,但我基本上也必须更新图层的框架,以反映锚点的变化:

[CATransaction setValue:(ID)kcfBooleanTrue forKey:kCATransactiondisableActions];  layer.contentsGravity = kCAGravitytop;  layer.masksToBounds = YES;  layer.anchorPoint = CGPointMake(.5,1);  CGRect newFrame = layer.frame;  newFrame.origin.y += newFrame.size.height / 2;  layer.frame = newFrame;  [CATransaction setValue:(ID)kcfBooleanFalse forKey:kCATransactiondisableActions];  a.tovalue = [NSNumber numberWithfloat:layer.bounds.size.height];  [layer addAnimation:a forKey:nil];
总结

以上是内存溢出为你收集整理的ios – 我如何动画CAlayer的边界逐步显示图像?全部内容,希望文章能够帮你解决ios – 我如何动画CAlayer的边界逐步显示图像?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存