SORU
15 NİSAN 2013, PAZARTESİ


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
15 NİSAN 2013, PAZARTESİ


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:

  1. Set düzeni etiket için baskı yapıyor
  2. Düşük öncelikli yükseklik kısıtlaması ayarlayın. ContentCompressionResistancePriority daha düşük olmalıdır
  3. Set numberOfLines = 0
  4. ContentHuggingPriority etiket yüksekliği önceliği daha yüksek ayarlayın
  5. 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

  1. Dört kısıtlamaları ayarlayın. Yükseklik kısıtlaması zorunludur. enter image description here

  2. Etiket niteliklerini gidin Müfettiş ve 0 hatlarının set sayısı. enter image description here

  3. Etiketin boyutu Müfettiş gidin ve dikey ContentHuggingPriority ve dikey ContentCompressionResistancePriority artırmak.
    enter image description here

  4. Seçin ve yükseklik sınırlaması düzenleyin.
    enter image description here

  5. Ve yükseklik sınırlaması öncelik azaltın.
    enter image description here

Keyfini çıkarın. :)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • michal lelkowski

    michal lelko

    9 Temmuz 2006
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012