일반적으로 단순히 버튼 유형을 사용자 정의로 설정하면 나에게 적합하지만 다른 이유로 UIButton을 서브 클래스 화하고 버튼 유형을 다시 기본값 (시스템)으로 설정해야 깜박임이 다시 나타납니다.
UIView.setAnimationsEnabled(false)
제목을 변경 하기 전에 설정 한 다음 다시 true로 설정 하면 전화 한 경우에도 깜박 거리지 않습니다.self.layoutIfNeeded()
않습니다.
이것은 iOS 9 및 10 베타에서 다음과 같은 순서로만 작동했습니다.
1) UIButton에 대한 서브 클래스를 작성하십시오 (스토리 보드에서도 버튼에 대한 사용자 정의 클래스를 설정하는 것을 잊지 마십시오).
2) setTitle:forState:
다음과 같이 재정의하십시오 .
override func setTitle(title: String?, forState state: UIControlState) {
UIView.performWithoutAnimation({
super.setTitle(title, forState: state)
self.layoutIfNeeded()
})
}
Interface Builder에서 버튼 유형을 시스템으로 그대로두고이 접근 방식이 작동하기 위해 사용자 정의 유형으로 변경할 필요가 없습니다.
나는 이것이 다른 누군가를 돕기를 바랍니다. 나는 다른 사람들에게 그것을 피하기 위해 성가신 깜박이는 버튼으로 오랫동안 고투 해 왔습니다.)