Genellikle düğme türünü Özel olarak ayarlamak benim için çalışır, ancak başka nedenlerle UIButton'u alt sınıflamak ve düğme türünü tekrar varsayılan (Sistem) olarak ayarlamak zorunda kaldım, böylece yanıp sönme tekrar ortaya çıktı.
UIView.setAnimationsEnabled(false)
Başlığı değiştirmeden önce ayarlamak ve daha sonra tekrar doğru yapmak, aramamdan self.layoutIfNeeded()
ya da aramamdan bağımsız olarak benim için yanıp sönmeyi engellemedi .
Bu ve sadece aşağıdaki sırayla, iOS 9 ve 10 beta ile benim için çalıştı:
1) UIButton için bir alt sınıf oluşturun (Storyboard'daki düğme için özel sınıfı da ayarlamayı unutmayın).
2) setTitle:forState:
Aşağıdaki gibi geçersiz kılın :
override func setTitle(title: String?, forState state: UIControlState) {
UIView.performWithoutAnimation({
super.setTitle(title, forState: state)
self.layoutIfNeeded()
})
}
Interface Builder'da, bu yaklaşımın çalışması için düğme türünü Sistem olarak bırakabilirsiniz, Özel Tür olarak değiştirmenize gerek yoktur.
Umarım bu başka birine yardımcı olur, sinir bozucu yanıp sönen düğmelerle o kadar uzun süre mücadele ettim ki başkalarına kaçınmayı umuyorum;)