如何为嵌入在 UITableViewCell 中的 UIView 设置动画

Posted

技术标签:

【中文标题】如何为嵌入在 UITableViewCell 中的 UIView 设置动画【英文标题】:How to Animate UIView embedded in UITableViewCell 【发布时间】:2012-10-24 19:06:51 【问题描述】:

didSelectRowAtIndexPath 上,我正在重新加载选定的行并更改heightForRowAtIndexPath 以便选定的表格视图单元格可以展开。这工作正常。因此,一旦重新加载扩展完成,我必须为 UIImageView 后面的 UIView 设置动画。

动画应该像从 imageView 后面进来,像从图像中显露一样停在某个位置。应该很简单吧?通过更改 y 原点并在其中执行动画块。

但问题在于它根本没有使用简单的 UIView beginAnimations 代码进行动画处理。我认为应该可以使用 CAKeyframeAnimation 应用于 UIView 的图层。

我从来没有玩过图层。有人可以指导我吗?

谢谢

【问题讨论】:

【参考方案1】:

你可以试试这样的:

CABasicAnimation *myViewAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
[myViewAnimation setFromValue:[NSValue valueWithCGPoint:CGPointMake(INITIAL_X,INITIAL_Y)]];
[myViewAnimation setToValue:[NSValue valueWithCGPoint:CGPointMake(FINAL_X,FINAL_Y)]];
[myViewAnimation setDuration:0.5];
[myView.layer setPosition:CGPointMake(FINAL_X,FINAL_Y)];
[myView.layer addAnimation:myViewAnimation forKey:@"position"];

您需要将 QuartzCore 框架链接到您的项目并导入它 (#import <QuartzCore/QuartzCore.h>)

【讨论】:

以上是关于如何为嵌入在 UITableViewCell 中的 UIView 设置动画的主要内容,如果未能解决你的问题,请参考以下文章

如何为 UITableViewCell 设置动画

如何为 UITableViewCell 实现抖动动画

如何为选择多行时使用的 UITableViewCell 图像蒙皮?

如何为 UITableViewCell 的 ImageView 设置固定大小?

如何为 UITableViewCell 显示自定义 UIMenuItem?

如何为嵌入在另一个堆栈视图中的堆栈视图设置顶部布局约束?