UIView.animateWithDuration(5, animations: {
myLabel.textColor = UIColor.redColor()
})
Этикетка TextColor просто меняет мгновенноВозможно ли изменить анимацию текста UILabel?
UIView.animateWithDuration(5, animations: {
myLabel.textColor = UIColor.redColor()
})
Этикетка TextColor просто меняет мгновенноВозможно ли изменить анимацию текста UILabel?
Попробуйте
[UIView transitionWithView:myLabel duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
label.textColor = [UIColor redColor];
} completion:^(BOOL finished) {
}];
спасибо, он работает;) – mres
Отлично :) Не могли бы вы принять этот ответ, нажав зеленый галочку :) –
Я записываю код Objective-C
и Swift
типы анимации
typedef NS_OPTIONS(NSUInteger, UIViewAnimationOptions) {
UIViewAnimationOptionCurveEaseInOut = 0 << 16, // default
UIViewAnimationOptionCurveEaseIn = 1 << 16,
UIViewAnimationOptionCurveEaseOut = 2 << 16,
UIViewAnimationOptionCurveLinear = 3 << 16,
UIViewAnimationOptionTransitionNone = 0 << 20, // default
UIViewAnimationOptionTransitionFlipFromLeft = 1 << 20,
UIViewAnimationOptionTransitionFlipFromRight = 2 << 20,
UIViewAnimationOptionTransitionCurlUp = 3 << 20,
UIViewAnimationOptionTransitionCurlDown = 4 << 20,
UIViewAnimationOptionTransitionCrossDissolve = 5 << 20,
UIViewAnimationOptionTransitionFlipFromTop = 6 << 20,
UIViewAnimationOptionTransitionFlipFromBottom = 7 << 20,
} NS_ENUM_AVAILABLE_IOS(4_0);
кодирования для Objective-C
[UIView transitionWithView:myLabel duration:0.20 options: UIViewAnimationOptionTransitionFlipFromBottom animations:^{
myLabel.textColor = [UIColor redColor];
} completion:^(BOOL finished) {
}];
кодирования для Swift
UIView.transition(with: myLabel, duration: 0.20, options: .transitionFlipFromBottom, animations: {() -> Void in
self.myLabel.textColor = UIColor.red
}, completion: {(_ finished: Bool) -> Void in
})
спасибо, он работает;) – mres
приветствую друга, –
Даже если вы говорите, принятый ответ работает, (1), необходимо использовать TransitionCrossDissolve
вместо CurveEaseInOut
; (2) во время тестирования я заметил, что в Swift кажется, что вы не можете добавить subview сразу перед анимацией. (Я думаю, что это ошибка.)
Видя, как myLabel
кажется локальным в вашем примере (поскольку глобальные переменные должны быть записаны в виде self.myLabel
в рамках закрытия блока), есть хороший шанс, что вы добавили myLabel
подвид в том же методе, что и анимация, и без задержки.
Так что, если вы по-прежнему возникают проблемы, я рекомендую (1), что делает myLabel
глобальных и (2) добавление задержки между добавлением подвид и выполнения анимации на этой подвид, например:
self.view.addSubview(myLabel)
var timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: "animate", userInfo: nil, repeats: false)
}
func animate() {
UIView.transitionWithView(myLabel, duration: 5.0, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: {
self.myLabel.textColor = UIColor.redColor()
}, completion:nil)
}
Работает только для меня с NSTimer, спасибо! – Phil
О I» m слепой. Благодарю. – mres
Без проблем, @mres! :) – Undo