UİLabel sizeToFit'otomatik ios6 ile çalışmıyor
Program aracılığıyla (ve yöntemi), metin bağlı olan bir UİLabel yapılandırmak gerekiyor? Boşuna Şeridi ve kod bir arada kullanarak, ama ayarlamaya çalışıyorum. Herkes lineBreakMode
numberOfLines
ayar sizeToFit
önerir. Ancak, eğer viewDidLoad:
, viewDidAppear:
viewDidLayoutSubviews
bu kodu koyarsam konu işe giremiyorum. Ya bu kutu çok küçük uzun metin için yapıyorum ve büyümek değil, ya da çok büyük yapmak ve küçültmek değil.
CEVAP
Lütfen dikkatvakaların çoğu o Matt's solution beklendiği gibi çalışır. Ama eğer sizin için çalışmıyor eğer doğru değilse, lütfen daha fazla bilgi edinin.
Etiket otomatik olarak aşağıdaki yapmanız gereken yüksekliğe yeniden boyutlandırmak için:
- Set düzeni etiket için baskı yapıyor
- Düşük öncelikli yükseklik kısıtlaması ayarlayın. ContentCompressionResistancePriority daha düşük olmalıdır
- Set numberOfLines = 0
- ContentHuggingPriority etiket yüksekliği önceliği daha yüksek ayarlayın
- Etiket preferredMaxLayoutWidth ayarlayın. Bu değer yüksekliği hesaplamak için etiket tarafından kullanılır
Örneğin:
self.descriptionLabel = [[UILabel alloc] init];
self.descriptionLabel.numberOfLines = 0;
self.descriptionLabel.lineBreakMode = NSLineBreakByWordWrapping;
self.descriptionLabel.preferredMaxLayoutWidth = 200;
[self.descriptionLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[self.descriptionLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[self.descriptionLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
[self addSubview:self.descriptionLabel];
NSArray* constrs = [NSLayoutConstraint constraintsWithVisualFormat:@"|-8-[descriptionLabel_]-8-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(descriptionLabel_)];
[self addConstraints:constrs];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-8-[descriptionLabel_]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(descriptionLabel_)]];
[self.descriptionLabel addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[descriptionLabel_(220@300)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(descriptionLabel_)]];
Interface Builder Kullanarak
Dört kısıtlamaları ayarlayın. Yükseklik kısıtlaması zorunludur.
Etiket niteliklerini gidin Müfettiş ve 0 hatlarının set sayısı.
Etiketin boyutu Müfettiş gidin ve dikey ContentHuggingPriority ve dikey ContentCompressionResistancePriority artırmak.
Seçin ve yükseklik sınırlaması düzenleyin.
Ve yükseklik sınırlaması öncelik azaltın.
Keyfini çıkarın. :)
iOS: Çok Satırlı UİLabel Otomatik Düze...
UİLabel - otomatik boyut bir metin sığ...
Uİlabel katman.konumuna taşır iOS 7.1 ...
iOS6: supportedİnterfaceOrientations ç...
Pencere Yüksekliği="Otomatik"...