Biasanya hanya mengatur jenis tombol ke Custom works untuk saya, tetapi untuk alasan lain saya perlu subkelas UIButton dan mengatur jenis tombol kembali ke default (Sistem), sehingga berkedip muncul kembali.
Pengaturan UIView.setAnimationsEnabled(false)
sebelum mengubah judul dan kemudian menjadi benar lagi setelah itu tidak menghindari kedip untuk saya, tidak peduli apakah saya menelepon self.layoutIfNeeded()
atau tidak.
Ini, dan hanya ini dalam urutan yang tepat berikut, bekerja untuk saya dengan iOS 9 dan 10 beta:
1) Buat subkelas untuk UIButton (jangan lupa mengatur kelas khusus untuk tombol di Storyboard juga).
2) Ganti setTitle:forState:
sebagai berikut:
override func setTitle(title: String?, forState state: UIControlState) {
UIView.performWithoutAnimation({
super.setTitle(title, forState: state)
self.layoutIfNeeded()
})
}
Di Interface Builder, Anda dapat membiarkan jenis tombol ke Sistem, tidak perlu mengubahnya ke Tipe Kustom agar pendekatan ini berfungsi.
Saya harap ini membantu orang lain, saya sudah berjuang begitu lama dengan tombol-tombol berkedip yang menjengkelkan yang saya harap dapat menghindarinya kepada orang lain;)