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的边界逐步显示图像?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)