2010-01-05 24 views
10

Sağda bir görünüm eklemek istediğim bir UITableViewCell var (aksesuar görünümüne ek olarak). TextLabel'in boyutunu birkaç piksel daha dar olacak şekilde ayarlamayı denedim, ancak yalnızca yeniden boyutlandırır.resize UITableViewCell textLabel

textLabel'i yeniden boyutlandırmanın herhangi bir yolu var mı?

cevap

8

UITableViewCell UITableViewCellStyleDefault örneğinde, varsayılan textLabel özelliği tarafından başvurulan nesne, en azından benim deneyimimde değil, yeniden boyutlandırılamaz. Bu durumlarda en iyi fikir, isterseniz UITableViewCell alt kodunuzu, kodda veya hatta Interface Builder ile oluşturmak ve istediğiniz düzeni vermektir.

- (void)layoutSubviews { 
[super layoutSubviews]; //The default implementation of the layoutSubviews 

CGRect textLabelFrame = self.textLabel.frame; 
textLabelFrame.size.width = _textLabelMaxWidth; 
self.textLabel.frame = textLabelFrame; 
} 

Umarım yardımcı olur: Eğer layoutSubviews yöntemini bir UITableViewCell alt sınıfı oluşturmak ve geçersiz kılarsanız

16

Aslında yeniden boyutlandırılabilir.

+0

Bu yalnızca hücre yeniden yüklendiğinde, herhangi bir fikir olduğunda benim için çalışır? –

+0

@AdamCarter Evet, farklı bir zamanda ve farklı bir olaydan değiştirmek istemediğiniz sürece, bunun nasıl kullanılacağını varsayalım. –

+1

Bu benim için çok yararlı oldu. UITableViewCell alt sınıfına sahibim ve etiket boyutları storyboard varsayılanlarına dönmeye devam edecek. Bu tavsiyeyi takdir ediyorum! – mikeho

1

textLabel'ın accessoryView'a uyum sağlamak için yeniden boyutlandırdığını fark ettim. Bu nedenle, etiketin tüm hücreyi kullanmasını istiyorsanız, aksesuarView'i sıfırlayabilirsiniz (bence bu zaten varsayılan davranıştır). Veya, örneğin, etiketin yalnızca hücrenin yarısını almasını istiyorsanız, aksesuar yapınBu hücrenin sağ yarısını kapsayan boş bir UIView olsun. (Boş olmamalı, orada bir şeyler koyabilirsiniz ... benim amacım, textLabel'ı daraltmaktır.)

0

UITableView Hücresini yeniden boyutlandırarak bu en basit şekilde yapabilirsiniz.İlk, bir göz atın örnek projem.

ResizableUIView

Size kısıtlamaları oluşturarak basit şekilde kendi iç bileşeni üzerinde UITableView hücre tabanını yeniden boyutlandırmak nasıl size gösterecektir.

tblTest.estimatedRowHeight = 100 // This is where you can set your estimated row height 
    tblTest.rowHeight = UITableViewAutomaticDimension 

başka önemli gerçek etiket hatları şudur: anlayabilmenin için

olmalıdır enter image description here

, ben UIView iç UILabel ayarlayın I nasıl bir göz atın ebeveyn UIView üzerinde kısıtlamalar yarattı.

Hala yardıma ihtiyacınız varsa sorun.

İyi Şanslar