0
AM/PM 차선을 없애기 위해 &으로 퇴색 시키려고 노력하고 있습니다. 그러나 두 가지 방법으로 모두 작동하지는 않습니다.UILabel에서 Catransition으로 텍스트를 페이드 아웃하려면 어떻게해야합니까?
하나만 사용하면 효과가 있지만 두 개를 추가하려고하면 적절한 페이드 애니메이션없이 앞뒤로 뒤집습니다.
누구나 내게 왜 어떤 통찰력을 줄 수 있습니까? 어떻게 해결할 수 있습니까?
아래 코드는 내 코드입니다.
var transitionAnimation = CATransition()
transitionAnimation.type = kCATransitionFade
transitionAnimation.duration = 0.2
transitionAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
transitionAnimation.fillMode = kCAFillModeBoth
self.titleLabel.layer.addAnimation(transitionAnimation, forKey: "fadeAnimation")
self.titleLabel.text = newTitle
나를 위해 노력하고 있습니다 :
- (void)setState:(MonringNightLabelState)state animated:(BOOL)animated
{
CATransition *animationAM = [CATransition animation];
animationAM.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animationAM.type = kCATransitionFade;
animationAM.duration = 0.3;
CATransition *animationPM = [CATransition animation];
animationPM.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animationPM.type = kCATransitionFade;
animationPM.duration = 0.3;
if (animated)
{
[UIView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
[self setState:state animated:NO];
}
completion:^(BOOL finished) {
}];
}
switch (state)
{
case MorningNightLabelStateAM:
{
[self.morningNightLabel.layer addAnimation:animationAM forKey:@"kCATransitionFade"];
self.morningNightLabel.text = @"AM";
}
break;
case MorningNightLabelStatePM:
{ [self.morningNightLabel.layer addAnimation:animationPM forKey:@"kCATransitionFade"];
self.morningNightLabel.text = @"PM";
}
break;
}
}