Dinamik UİLabel yazı tipi boyutunu değiştirme
Ben şu anda UILabel
bir:
factLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 100)];
factLabel.text = @"some text some text some text some text";
factLabel.backgroundColor = [UIColor clearColor];
factLabel.lineBreakMode = UILineBreakModeWordWrap;
factLabel.numberOfLines = 10;
[self.view addSubview:factLabel];
Benim iOS hayatı boyunca uygulama, factLabel
farklı değerleri bir sürü alır. Birden fazla cümle, sadece 5 ya da 6 kelime ile bir kişi.
Nasıl yazı tipi boyutu metin her zaman sınırları içinde sığacak şekilde değiştirir böylece UILabel
kurmak tanımlanmış olabilir miyim?
CEVAP
Tek satır:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
Yukarıdaki kod, metnin yazı tipi (örneğin) boyut 8
etiket içinde metni sığdırmak için çalışıyorum ayarlayacaktır.
numberOfLines = 1
zorunludur.
Birden fazla satır:
numberOfLines > 1
*örneğin 23* yöntemlerle nihai metin boyutunu anlamak için bir yöntem vardır:
CGSize lLabelSize = [yourText sizeWithFont: factLabel.font forWidth:factLabel.frame.size.width lineBreakMode:factLabel.lineBreakMode];
Bundan sonra sadece etiket kullanarak örneğin lLabelSize
, (sadece etiket yüksekliği değişecek varsayarak) sonuç boyutlandırabilirsiniz:
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
iOS6
Tek satır:
İOS6, minimumFontSize
ile başlayan kalmıştır. Hattı
factLabel.minimumFontSize = 8.;
değiştirilebilir:
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
iOS7
Birden fazla satır:
, *21 iOS7* ile başlayan kaldırılmış olur. Çok satırlı dava düşürüldü
factLabel.numberOfLines = 0;
factLabel.lineBreakMode = NSLineBreakByWordWrapping;
CGSize maximumLabelSize = CGSizeMake(factLabel.frame.size.width, CGFLOAT_MAX);
CGSize expectSize = [factLabel sizeThatFits:maximumLabelSize];
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, expectSize.width, expectSize.height);
Font yerel ayarları yazı tipi boyutunu...
Nasıl Java metin editörleri için Eclip...
Nasıl Emacs yazı tipi boyutunu ayarlam...
Yazı tipi boyutu UİLabel programlı ola...
Nasıl böyle büyük mükafat düzenleyici ...