iOS 7에서 UIButton 타이틀이 잘못된 시간에 늦게 애니메이션으로 움직이고 있습니다. 이 문제는 iOS 6에는 나타나지 않습니다.
[self setTitle:text forState:UIControlStateNormal];
나는 이것이 빈 프레임없이 즉시 발생하는 것을 선호합니다. 이 깜박임은 특히주의를 산만하게하며 다른 애니메이션에서주의를 끕니다.
답변
이것은 사용자 정의 버튼에서 작동합니다.
[UIView setAnimationsEnabled:NO];
[_button setTitle:@"title" forState:UIControlStateNormal];
[UIView setAnimationsEnabled:YES];
시스템 버튼의 경우 애니메이션을 다시 활성화하기 전에이를 추가해야합니다 (@Klaas 감사).
[_button layoutIfNeeded];
답변
이 performWithoutAnimation:
방법을 사용하고 나중에 대신 즉시 레이아웃을 강제 실행 하십시오 .
[UIView performWithoutAnimation:^{
[self.myButton setTitle:text forState:UIControlStateNormal];
[self.myButton layoutIfNeeded];
}];
답변
버튼 유형을 사용자 정의 양식 인터페이스 빌더로 변경하십시오.
이것은 나를 위해 일했습니다.
답변
Swift에서는 다음을 사용할 수 있습니다.
UIView.performWithoutAnimation {
self.someButtonButton.setTitle(newTitle, forState: .normal)
self.someButtonButton.layoutIfNeeded()
}
답변
참고 :
_button의 ” buttonType “이 “UIButtonTypeSystem”인 경우 아래 코드는 유효하지 않습니다 .
[UIView setAnimationsEnabled:NO];
[_button setTitle:@"title" forState:UIControlStateNormal];
[UIView setAnimationsEnabled:YES];
_button의 ” buttonType “이 “UIButtonTypeCustom”인 경우 위 코드가 유효합니다 .
답변
iOS 7.1부터 나를 위해 일한 유일한 해결책은 type 버튼을 초기화하는 것 UIButtonTypeCustom
입니다.
답변
그래서 나는 일한 해결책을 찾습니다.
_logoutButton.titleLabel.text = NSLocalizedString(@"Logout",);
[_logoutButton setTitle:_logoutButton.titleLabel.text forState:UIControlStateNormal];
먼저 버튼의 제목을 변경 한 다음이 제목의 버튼 크기를 조정하십시오.