Bagaimana saya bisa mendapatkan ukuran font dan nama font UILabel?

105

Saya memiliki UILabel yang saya tetapkan ukuran font dan nama font dengan Interface Builder. Sekarang saya harus membaca nilai keduanya di ViewController saya.

Bagaimana saya bisa melakukan ini?

Tim
sumber
Metode ini telah usang iOS7, lihat artikel ini stackoverflow.com/questions/19128797/…
Maria

Jawaban:

254

Tambahkan properti ke file .h pengontrol tampilan Anda:

@property (nonatomic, retain) IBOutlet UILabel *label;

Tautkan label ke IBOutlet ini di bawah outlet "Pemilik File" di Interface Builder. Jika tidak menggunakan ARC, pastikan Anda merilisnya di -dealloc

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

Kemudian untuk mendapatkan nama dan ukuran font yang Anda butuhkan adalah

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;
Ned
sumber
3
Tidak bekerja. Saya bisa menulis teks di dalamnya, tetapi fontName dan pointSize adalah null.
Tim
Apakah maksud Anda Anda dapat mengubah teks label secara terprogram, tetapi Anda tidak dapat mengakses fontName dan pointSize? Saya mengedit jawaban di atas untuk menyertakan self.label, bukan hanya label, karena saya tidak menyebutkan membuat variabel instance untuk label.
Ned
Juga, pastikan Anda telah menghubungkan label di Interface Builder dengan IBOutlet yang Anda buat di File's Owner (pengontrol tampilan).
Ned
2
Ah, saya lupa koneksi di IB dengan Pemilik File.
Tim
29

Cepat:

var currentFontSize = button.titleLabel?.font.pointSize
Esqarrouth
sumber
15

Nilai Pointsize bukanlah Ukuran Font yang digunakan dalam properti ukuran UIFont. Katakanlah jika Anda mengatur ukuran font pembuat antarmuka menjadi 14 dan mencetak pointSize Anda hanya akan mendapatkan 11.

ctd
sumber
Kelihatannya sekarang dapat berfungsi. Jika saya menyetel ukuran font dari sebuah label di pembuat antarmuka / editor papan cerita ke 17 ... myLabel.font.pointSizemenghasilkan 17.
Derek Soike
1

Anda harus melampirkannya ke UILabel IBOutlet, dan kemudian, label.font ...

Guy Ephraim
sumber