Bir UILabel'in yazı tipi boyutunu ve yazı tipi adını nasıl alabilirim?


105

Interface Builder ile bir yazı tipi boyutu ve yazı tipi adı belirlediğim bir UILabel var. Şimdi her ikisinin de değerlerini ViewController'imde okumam gerekiyor.

Bunu nasıl yapabilirim?


Bu yöntem iOS7'de kullanımdan kaldırılmıştır, bu makaleye bir göz atın stackoverflow.com/questions/19128797/…
Maria

Yanıtlar:


254

Görünüm denetleyicinizin .h dosyasına bir özellik ekleyin:

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

Etiketi, Arayüz Oluşturucu'daki "Dosyanın Sahibi" çıkışları altındaki bu IBOutlet'e bağlayın. ARC kullanmıyorsanız, -dealloc içinde serbest bıraktığınızdan emin olun.

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

Ardından yazı tipi adını ve boyutunu almak için ihtiyacınız olan tek şey

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;

3
Çalışmıyor. İçine metin yazabilirim, ancak fontName ve pointSize null.
Tim

Etiket metnini programlı olarak değiştirebileceğinizi, ancak fontName ve pointSize değerlerine erişemeyeceğinizi mi söylüyorsunuz? Label için bir örnek değişkeni oluşturmadan bahsetmediğim için yukarıdaki yanıtı sadece etiket yerine self.label'i içerecek şekilde düzenledim.
Ned

Ayrıca, Interface Builder'daki etiketi File's Owner'ta (görünüm denetleyicisi) oluşturduğunuz IBOutlet ile bağladığınızdan emin olun.
Ned

2
Ah, IB'deki Dosya Sahibi ile bağlantıyı unuttum.
Tim


15

Nokta boyutu değeri, UIFont boyutu özelliğinde kullanılan Yazı Tipi Boyutu değildir. Arabirim oluşturucu yazı tipi boyutunu 14 olarak ayarlarsanız ve pointSize değerini yazdırırsanız, yalnızca 11 elde edeceğinizi varsayalım.


Şimdi çalışıyor gibi görünüyor. Arayüz oluşturucu / film şeridi düzenleyicisindeki bir etiketin yazı tipi boyutunu 17 olarak myLabel.font.pointSize
ayarlarsam

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.