Interface Builder에서 액션에 연결되는 "시작"텍스트가있는 시작 버튼이 있습니다.animationWithDuration을 사용하여 UIButton의 제목을 변경하면 지연이나 애니메이션이 발생하지 않습니다.
그러나 애니메이션은 3 + 5 초가 아닌 즉시 시작되고 완료됩니다. 이 코드의 문제점은 무엇입니까?
@interface ViewController()
@property (weak, nonatomic) IBOutlet UIButton *startButton;
@end
@implementation ViewController
- (IBAction)startPressed:(UIButton *)sender
{
[UIView animateWithDuration:3 delay:5
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
[self.startButton setTitle:@"New Title" forState:UIControlStateNormal];
}
completion:nil];
}
@end
업데이트 : 물론, 이러한 응답은 정확합니다. 텍스트를 숨기지 않고 Jack Wu의 제안을 사용했지만 setTitle을 사용하면 화면에 버튼이 다시 깜박입니다.
- (IBAction)startPressed:(UIButton *)sender
{
[UIView animateWithDuration:1.5 delay:5
options:UIViewAnimationOptionCurveEaseInOut
animations:^{ self.startButton.alpha = 0; }
completion:^(BOOL c){ if (c) {
self.startButton.hidden = YES;
[self.startButton setTitle:@"newTitle" forState:UIControlStateNormal];
[UIView animateWithDuration:1.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut
animations:^{
self.startButton.hidden = NO;
self.startButton.alpha = 1;
}
completion:nil];
}}];
}
버튼의 제목이 애니메이션 가능합니까? – Caleb
여기에 당신이 무엇을 기대하고 있는지 확실하지 않습니다 ... – Jack
전환의 일종을 원한다면 1.5 초 내에 버튼을 페이드 아웃시키고 텍스트를 변경 한 다음 다시 1.5 초로 페이드 아웃 할 수 있습니까? – Jack