在 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
中制作动画并重新加载需要动画的行,但这也不起作用。我希望动画作为上述IBAction
handleButtonTap:
的一部分发生。
什么都没有发生。我根本看不到任何动画,但我确认上面的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
如何在 C# 中为自定义 DataTemplateSelector 获取 DataTemplate 的 x:DataType