Saya tidak dapat menetapkan judul UIButton menggunakan IB sebagai pusat. Judul saya adalah multi-line.
Memberi seperti ini
Tapi aku mau yang ini
Saya telah memberikan ruang dalam hal ini tetapi saya tidak ingin melakukan itu. Karena tidak selaras persis untuk beberapa kasus dan saya tahu ada properti UILabel untuk mengatur perataan tetapi saya tidak ingin menulis kode untuk itu .. hanya ingin mengatur semuanya dari IB.
Terima kasih
ios
objective-c
uibutton
interface-builder
Inder Kumar Rathore
sumber
sumber
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
Jawaban:
Ini akan membuat persis apa yang Anda harapkan:
Tujuan-C:
Untuk iOS 6 atau lebih tinggi
seperti yang dijelaskan dalam jawaban tyler53
Cepat:
Swift 4.x dan lebih tinggi
sumber
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Gunakan garis:
Ini harus memusatkan konten (horizontal).
Dan jika Anda ingin mengatur teks di dalam label ke tengah juga, gunakan:
[labelOne setTextAlignment:UITextAlignmentCenter];
Jika Anda ingin menggunakan IB, saya punya contoh kecil di sini yang terhubung di XCode 4 tetapi harus memberikan detail yang cukup (juga pikiran, di atas layar properti itu menunjukkan tab properti. Anda dapat menemukan tab yang sama di XCode 3.x):
sumber
Solusi1
Anda dapat mengatur jalur kunci di storyboard
Setel teks ke judul multiline Anda, misalnya
hello
⌥ +↵multiline
Anda perlu menekan ⌥ + ↵untuk memindahkan teks ke baris berikutnya.
Kemudian tambahkan jalur kunci
titleLabel.textAlignment
asNumber
and value1
,1
berartiNSTextAlignmentCenter
titleLabel.numberOfLines
asNumber
and value0
,0
berarti sejumlah garisIni tidak akan tercermin pada IB / Xcode, tetapi akan berada di tengah pada saat dijalankan (perangkat / simulator)
Jika Anda ingin melihat perubahan pada Xcode Anda perlu melakukan hal berikut: (ingat Anda dapat melewati langkah-langkah ini)
Subkelas UIButton untuk membuat tombolnya dapat dirancang:
Tetapkan subkelas yang dirancang untuk tombol-tombol yang Anda modifikasi:
Solusi2
Jika Anda ingin menulis kode, maka lakukan proses panjang
1.Buat
IBOutlet
untuk tombol2.Tulis kode dalam viewDidLoad
Solusi3
Dalam versi xcode yang lebih baru (milik saya adalah xcode 6.1) kami memiliki properti yang dikaitkan dengan judul.
Pilih
Attributed
kemudian pilih opsi teks dan tekan pusat di bawah ini.PS Teks itu tidak datang multiline untuk itu saya harus mengatur
btn.titleLabel.numberOfLines = 0
sumber
Line Breaking = Clip
, itu akan mengubah teks menjadi multilinebtn.titleLabel.textAlignment
, itu bekerja dengan baik.Untuk UIButton Anda harus menggunakan: -
sumber
Untuk ios 8 dan Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
atau
btn.titleLabel.textAlignment = .Center
sumber
Bagi Anda yang sekarang menggunakan iOS 6 atau lebih tinggi, UITextAlignmentCenter telah ditinggalkan. Sekarang NSTextAlignmentCenter
CONTOH:
mylabel.textAlignment = NSTextAlignmentCenter;
Berfungsi sempurna.sumber
Untuk swift 4, xcode 9
sumber
Dengan asumsi bahwa btn merujuk pada UIButton, untuk mengubah teks multi-garis menjadi terpusat secara horizontal, Anda dapat menggunakan pernyataan berikut di iOS 6 atau yang lebih baru:
sumber
UITextAlignmentCenter
sudah tidak digunakan lagi di iOS6Sebagai gantinya, Anda dapat menggunakan kode ini:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
sumber
Untuk Swift 3.0
sumber
Untuk Swift 4:
sumber
Sebenarnya Anda bisa melakukannya di pembangun antarmuka.
Anda harus mengatur Judul menjadi "Dikaitkan" dan kemudian pilih perataan tengah.
sumber
Coba Seperti ini:
sumber
Anda dapat melakukan ini dari storyboard. Pilih tombol Anda. Atur Line Break 'Word Wrap', Tetapkan judul Anda 'Plain' menjadi 'Attributed'. Pilih 'Perataan tengah'. Bagian ini penting => Klik ... (Lainnya) Tombol. Dan pilih mode line breaking ke 'Character Wrap'.
sumber
UIButton tidak akan mendukung setTextAlignment. Jadi, Anda harus pergi dengan setContentHorizontalAlignment untuk penyelarasan teks tombol
Untuk referensi Anda
sumber