animationUIButton的标题更改

在这里,我发现如何使用now-deprecated beginAnimations:context:animationUIButton的标题更改beginAnimations:context: method:

用于iPhone的UIBUtton标题animation

如何使用当前的API来做同样的事情?

更新:

我试图使用基于块的animation:

 NSTimeInterval animationDuration = animated ? 1.f : 0.f; [UIView animateWithDuration:animationDuration delay:0.f options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction animations:^{ [button setTitle:newTitle forState:UIControlStateNormal]; [button setTitleColor:newTitleColor forState:UIControlStateNormal]; } completion:nil]; 

颜色变化不是animation。

使用块:

 [UIView transitionWithView:self.flipLabelButton duration:1 options:UIViewAnimationOptionTransitionFlipFromRight animations:^{ [self.flipLabelButton setTitle:newText forState:UIControlStateNormal]; } completion:nil]; 

Swift 3

 UIView.transition(with: button, duration: 0.5, options: .transitionCrossDissolve, animations: { self.button.setTitle("WOW, new title", for: .normal) self.button.setTitleColor(UIColor.red, for: .normal) }, completion: nil) 

除了AnimationGroups,通常有两种animation,一种是属性animation,另一种是animation类似你的内容,转换或任何不能使用属性做animation的东西。 所以第二个解决scheme是你的select,你可以通过两种方式实现这一点:使用CATransition:

 CATransition *transition = [CATransition animation]; transition.type = kCATransitionFade; transition.duration = 1; [button.layer addAnimation:transition forKey:kCATransition]; [button setTitle:newTitle forState:UIControlStateNormal]; [button setTitleColor:newColor forState:UIControlStateNormal]; 

另一种方式是使用一个UIKit块作为@ jjv360说,但你不能在里面animation颜色,因为显然颜色不能翻转。