在UITableViewCell中动画自定义UIButton

时间:2011-11-02 22:30:27

标签: iphone ios cocoa-touch uitableview uibutton

在自定义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 个答案:

答案 0 :(得分:1)

糟糕。我应该阅读更多有关CALayers和Core Animation的信息。

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

这是我发现的一个很好的参考: apeth.com/iOSBook

参考文献:

  

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