Jadi saya mencoba memperbarui teks pada UIButton ketika saya mengkliknya. Saya menggunakan baris berikut untuk mengubah teks:
calibrationButton.titleLabel.text = @"Calibration";
Saya telah memverifikasi bahwa teks berubah, tetapi ketika saya menjalankan aplikasi dan saya mengklik tombol, itu berubah menjadi "Kalibrasi" untuk sepersekian detik dan kemudian kembali ke nilai defaultnya. Ada ide mengapa ini mungkin terjadi? Apakah ada semacam fungsi penyegaran yang perlu saya panggil?
objective-c
ios
xcode
event-handling
uibutton
Julian Coltea
sumber
sumber
Jawaban:
Saat menyusun subview, UIButton akan menyetel nilai teks titleLabel menggunakan nilai judulnya sendiri, sehingga Anda dapat mengatur hingga empat string berbeda untuk empat status (normal, disorot, dipilih, dinonaktifkan).
Karena fitur ini, pengaturan teks titleLabel secara langsung tidak akan bertahan, dan akan diatur ulang oleh tombol saat mengatur subview.
Inilah yang harus Anda lakukan untuk mengubah teks judul untuk status tombol.
sumber
button.titleLabel
, Anda akan melihat bahwa titleLabel adalah properti hanya-baca, sehingga semua properti hanya-baca juga hanya-baca. Menggunakan notasi titik untuk mengeditnya tidak akan berfungsi, jadi Anda memerlukan metode eksplisit untuk mengeditnya. Setidaknya ini masuk akal bagi saya.Although this property is read-only, its own properties are read/write. Use these properties primarily to configure the text of the button. For example:
Untuk mengatur teks tombol gunakan metode berikut:
Lihat
UIButton
referensi kelas untuk lebih jelasnya ... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.htmlAtau di Swift 3:
sumber
secara terprogram Anda dapat mengatur judul tombol seperti di bawah ini:
Anda juga dapat mengatur properti judul tombol dari storyboard.
sumber
Bukan masalah besar, dan mungkin sudah jelas, tetapi ada beberapa status yang tersedia untuk tombol. Jika Anda memberikan yang 'salah', Anda tidak akan melihat perubahan teks seperti yang diinginkan.
Saya perhatikan bahwa tombol saya tidak menampilkan teks yang saya tambahkan, menggunakan metode yang ditunjukkan di sini. Periksa tautan ini untuk memastikan Anda memberikan UIControlState yang Anda inginkan.
Apa perbedaan antara UIControlStateHighlighted dan UIControlStateSelected?
sumber
Untuk Swift 3.0
sumber
Untuk Swift 2.0:
sumber
Jika Anda tidak ingin menyetel judul untuk semua status, cukup setel ke status normal karena judul untuk status yang tidak disetel akan default ke judul status normal.
sumber