Saya memiliki kode berikut:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, 25, 25);
[[button layer] setCornerRadius:5.0f];
[[button layer] setMasksToBounds:YES];
[[button layer] setBackgroundColor:[[UIColor redColor] CGColor]];
[button.titleLabel setFrame:CGRectMake(0,0, 25, 25)];
[button setTitle:[NSString stringWithFormat:@"%@", [[topics objectAtIndex:indexPath.row] unread]] forState:UIControlStateNormal];
Masalahnya adalah ketika string dalam teks tidak panjang, itu menunjukkan baik-baik saja (1-2 digit). Namun, jika sudah cukup panjang (3 ++ digit), yang bisa saya lihat hanyalah tombol merah, tanpa teks di dalamnya. Bagaimana cara menyesuaikan ini?
Saya tidak berpikir bahwa:
[button.titleLabel setAdjustsFontSizeToFitWidth:YES];
melakukan pekerjaan, bukan?
ios
objective-c
adit
sumber
sumber
titleButton.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
Jawaban:
Coba ini:
Saya tidak yakin mengapa ini berhasil tetapi berhasil :)
sumber
numberOfLines
menjadi 0harus melakukan pekerjaannya sendiri jika Anda menggunakan Tata Letak Otomatis dan telah menyetel batasan pada lebar tombol.
Opsi lainnya (faktor skala minimum, jumlah baris, dll) masih dapat digunakan untuk menyesuaikan lebih lanjut sesuai dengan kebutuhan Anda, tetapi tidak diperlukan.
sumber
Jawaban dari EliBud tidak berfungsi di iOS 8. Saya menemukan solusi yang berfungsi di iOS 8. Di bawah ini adalah kode cepat:
Anda dapat bermain dengan label? .LineBreakMode karena saya menemukan bahwa hasil bervariasi untuk mode istirahat yang berbeda.
sumber
dalam kecepatan terakhir ini tampaknya berhasil untuk saya
sumber
Solusi iOS 10.3 berdasarkan jawaban lain di sini:
Tidak ada yang disebutkan
baselineAdjustment
; Saya membutuhkannya karena label tombol menjadi tidak sejajar secara vertikal setelahadjustsFontSizeToFitWidth
diterapkan.baselineAdjustment
Dokumentasi Apple :FWIW, saya tidak pernah bisa mendapatkan label yang selaras dengan sempurna.
sumber
adjustsFontSizeToFitWidth
tidak berfungsi untuk saya sampai saya menetapkan batasan lebar pada tombol saya di Interface Builder.Menetapkan batasan membuat tombol tidak bertambah besar dan oleh karena itu tidak menyadarinya harus mengecilkan teks.
sumber
Ekstensi Swift 4
sumber
Solusi Xamarin.iOS
Saya akhirnya mengatur ukuran font untuk memastikan font itu "besar" sebelum sistem menyesuaikan ukuran agar pas.
sumber
berdasarkan jawaban Nik Kov:
sumber
Solusi di bawah ini berhasil untuk saya:
Dokumentasi pengembang menjelaskan properti ini sebagai:
sumber
Di iOS 13.1 dengan Swift 5, saya harus menyediakan
contentEdgeInsets
juga untuk menyesuaikan bantalan.sumber