SORU
8 EYLÜL 2008, PAZARTESİ


Nasıl içeriği UİTextView boyutu?

İyi bir yolu UITextView boyutunu ayarlamak için içeriği uygun mu? Demek örneğin metin satırı içeren UITextView var:

"Merhaba Dünya"

Ben metin bir satır ekleyin:

"Hoşça kal dünya"

Cocoa Touch iyi bir şekilde üst görünüm buna göre ayarlayın ben metin görünümü satırları tutacak rect almak için var mı?

Başka bir örnek, bak Notlar alan olaylar Takvimi uygulaması--not nasıl hücre (UITextView içerir) genişletir tutun tüm satır metin notları dize.

CEVAP
21 Mart 2010, Pazar


Aslında içeriği doğru yüksekliği UITextView yeniden boyutlandırma yapmak çok kolay bir yolu var. BittiUITextView contentSizekullanarak olabilir.

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

Unutulmaması gereken bir şey contentSize doğru kullanılabilirsonraUITextView addSubview ile görünümü eklendi. Bundan önce frame.size eşittir

Bu otomatik düzeni ise çalışmaz. Otomatik düzeni, genel yaklaşım sizeThatFits yöntemi kullanın ve yükseklik kısıtlaması constant değerini güncellemek için.

CGSize sizeThatShouldFitTheContent = [_textView sizeThatFits:_textView.frame.size];
heightConstraint.constant = sizeThatShouldFitTheContent.height;

heightConstraint genellikle yükseklik kısıtlaması bir film şeridi oluşturulan özelliği bağlayarak bir İBOutlet üzerinden Kur bu düzeni bir sınırlamadır.


Ben, 2014, bu şaşırtıcı cevap eklemek için:

[self.textView sizeToFit];

bu davranışları ile bir fark yokturiPhone6sadece:

enter image description here

Ekleme yapar 6 (5s veya 6) "Daha fazla boş bir satır" UİTextView. "RL çözüm" bu düzeltmeleri mükemmel:

CGRect _f = self.mainPostText.frame;
_f.size.height = self.mainPostText.contentSize.height;
self.mainPostText.frame = _f;

"Ek satır" sorun üzerinde 6 . düzeltmeleri

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • efaustus9

    efaustus9

    16 HAZİRAN 2006
  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007
  • MrDevin521

    MrDevin521

    18 Temmuz 2010