自定义动画后的 UIButton 动作
Posted
技术标签:
【中文标题】自定义动画后的 UIButton 动作【英文标题】:UIButton action after custom animation 【发布时间】:2014-01-09 20:39:53 【问题描述】:我希望自定义动画与 UIButton 相关联,因此我决定使用超类 UIButton 创建自己的类。然后我像这样重载了 touchesBegan 方法
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
[UIView animateKeyframesWithDuration:0.5
delay:0
options: 0
animations:^
[UIView addKeyframeWithRelativeStartTime:0
relativeDuration:0.5
animations:^
self.transform = CGAffineTransformScale(self.transform, 0.7, 0.7);
];
[UIView addKeyframeWithRelativeStartTime:0.5
relativeDuration:0.5
animations:^
self.transform = CGAffineTransformIdentity;
];
completion:^(BOOL finished)
[super touchesBegan:touches withEvent:event];
];
动画效果很好,但之后什么也没有发生。看起来调用超级方法在完成处理程序中不起作用(不知道为什么)。我的问题是:我可以改变什么来延迟 UIButton 操作以类似的方式创建自己的类?
编辑:我想创建自己的类,因为我的应用中有很多按钮,我希望它们的行为相同。
【问题讨论】:
您希望动画完成后会发生什么? 您不需要创建自定义按钮来执行此操作。只需使用标准按钮在触屏或触屏时触发动画,然后将要在动画之后运行的任何代码放在完成块中。 【参考方案1】:UIButton 动作通常被分配在 UIControlEventTouchUpInside 上触发,这应该在 touchesEnded 方法中解决,而不是 touchesBegan。
【讨论】:
以上是关于自定义动画后的 UIButton 动作的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell 中为自定义 UIButton 设置动画
如何在自定义 UIButton 中实现 .isHighlighted 动画?