Ios 如何使原点从底部而不是顶部来设置CALayer高度的动画?

Ios 如何使原点从底部而不是顶部来设置CALayer高度的动画?,ios,core-animation,calayer,Ios,Core Animation,Calayer,我想制作一个简单的CALayer动画,根据传入的数据(图形均衡器上的条形图)上下移动 CALayer应沿底部保持固定,并在设置高度动画时上下移动 有谁能建议在不必设置原点y坐标和高度动画的情况下实现这一点的最佳方法吗?如果您希望层始终从底部开始增长和收缩,那么您应该在底部的层上设置自己的锚点。锚定点在图层单位坐标空间中指定,因此无论大小,X和Y都在边界内从0到1的范围内 yourLayer.anchorPoint = CGPointMake(0.5, 1.0); 然后,对于动画,您只需设置边界

我想制作一个简单的CALayer动画,根据传入的数据(图形均衡器上的条形图)上下移动

CALayer应沿底部保持固定,并在设置高度动画时上下移动


有谁能建议在不必设置原点y坐标和高度动画的情况下实现这一点的最佳方法吗?

如果您希望层始终从底部开始增长和收缩,那么您应该在底部的层上设置自己的
锚点。锚定点在图层单位坐标空间中指定,因此无论大小,X和Y都在边界内从0到1的范围内

yourLayer.anchorPoint = CGPointMake(0.5, 1.0);
然后,对于动画,您只需设置边界动画(或者更好,您可以设置
“bounds.size.height”
,因为只有高度在变化):


  • 您可以在中阅读有关锚定点的更多信息
  • 您可以阅读有关核心动画的键值编码扩展的更多信息

不幸的是,当我尝试这种方法时,我看到的只是颤动的杆(高度似乎在抖动)。可能是因为我试图每秒执行11个动画吗?听起来不对。但除非你给我看你使用的代码,否则我不知道哪里出了问题
// set the new bounds of yourLayer here...

CABasicAnimation *grow = [CABasicAnimation animationWithKeyPath:@"bounds.size.height"];
grow.fromValue = @0;   // from no height
grow.toValue   = @200; // to a height of 200
grow.duration  = 0.5;
// add any additional animation configuration here...
[yourLayer addAnimation:grow forKey:@"grow the height of the layer"];