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颜色,因为显然颜色不能翻转。