在 UITableViewCell 中为自定义 UIButton 设置动画

Posted

技术标签:

【中文标题】在 UITableViewCell 中为自定义 UIButton 设置动画【英文标题】:Animating custom UIButton in UITableViewCell 【发布时间】:2011-11-02 22:30:26 【问题描述】:

在自定义 UITableViewCell 中点击 UIButton 时,我无法显示动画。 IBAction 被正确调用。我希望UIButton 周围出现蓝色阴影。代码如下:

-(IBAction)handleButtonTap:(UIButton*)sender 
[self animateBlueShadowAroundView:sender];


-(void)animateBlueShadowAroundView:(UIView*)view 
[UIView animateWithDuration:1.0 animations:^ [self configureBlueShadow:view];  ];


-(void)configureBlueShadow:(UIView*)view 
view.layer.shadowColor = [UIColor blueColor].CGColor;
view.layer.shadowRadius = 7.0;
view.layer.shadowOpacity = 1.0;

我还尝试在cellForRowAtIndexPath 中制作动画并重新加载需要动画的行,但这也不起作用。我希望动画作为上述IBActionhandleButtonTap:的一部分发生。

什么都没有发生。我根本看不到任何动画,但我确认上面的IBAction 正在被调用。

我错过了什么?

【问题讨论】:

【参考方案1】:

哎呀。我应该阅读更多关于 CALayers 和 Core Animation 的内容。

UIView 的动画方法(如我上面使用的)只能为某些属性设置动画。要为CALayer 的属性设置动画,您必须使用核心动画类和方法,而不是UIView 的。

这是我找到的一个很好的参考: apeth.com/iosBook

来自参考:

动画最终是层动画。但是,对于有限的范围 属性,您可以直接为 UIView 设置动画:这些是它的 alpha、backgroundColor、bounds、center、frame 和 transform。

【讨论】:

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

Objective c - 为自定义 UITableViewCell 的按钮处理按钮触摸事件的最佳实践

为自定义 UITableViewCell 加载和注册 nib 时未调用 prepareForSegue

在快速静态错误中为自定义 UIView 设置动画

如何在 C# 中为自定义 DataTemplateSelector 获取 DataTemplate 的 x:DataType

如何在 WooCommerce 中为自定义产品数据选项卡定义图标

我应该在 tableView(_:cellForRowAtIndexPath:) 方法中为自定义单元格写啥?