23

UITcrollView içinde UITcrollView ile hiç şansı kalmadan AutoLayout ile yerleştirmeye çalışıyorum. Ne çalıştılar AutoLayout ile UIScrollView içinde UITextView

  • I Film Şeridi 'ana görünüm içinde UIScrollView yerleştirilmiş olan
  • I Film Şeridi' de UIScrollView içinde UITextView yerleştirilir ve devre dışı Kaydırma
  • I, kısıtları Etkin
  • (öncü, arka, üst ve alt) UIScrollView ile
  • ben bir metin (sebep olabilir metnin bir çok set
  • UITextView yüksekliği kısıtlaması IBOutlet oluşturulan
  • UITextView ilgili kısıtlamalar (üst, lider, arka, yükseklik) ayarlamak viewDidLoad()
  • UITextView öğesinde UITextView'de UITextView'ın aşağıdaki kodla bir yükseklik kısıtlaması ayarlıyorum. Birazdan

self.textViewHeightConstraint.constant = [self.textView sizeThatFits:CGSizeMake(self.textView.frame.size.width, FLT_MAX)].height;

UITextView onun yüksekliğini elde ettiğini hiçbir şans ile viewDidLoad() ve viewDidLayoutSubviews() metni ayarladıktan sonra denedim ama UIScrollView değil. Kaçırdığım bir şey var mı?

+0

Unutulmaması gereken başka bir şey 'UITextView isteyebilirsiniz olmasıdır Çok sayıda görünümünüz varsa ve her zaman bir viewcontroller sınıfı dosyası oluşturmak istemiyorsanız .scrollEnabled = false ' – onmyway133

cevap

66

Birkaç gün süren araştırmalardan sonra ve ellerimi UIScrollView + UITextView + Otomatik Düzenleme ile kirlettikten sonra, tamamen çalışan bir UIScrollView ürününü başarıyla aldım. Çözümümün, birisinin aynı durum üzerinde sıkışmış olabileceği durumlarda paylaşılmasını istiyorum. UITextView değildir

  1. UIView içindeki (2. adımda eklenen görünümü)
  2. emin olun UITextView Ekle UIScrollView
  3. içindeki UIView Ekle Film Şeridi'nde ana görünüm içinde UIScrollView Ekle "Etkin kaydırma"
  4. UIView (basamak 2'de ilave bir görünümü)
  5. kısıtlamalar (lider, arka, üst ve alt) ekleyin UIScrollView 4 kısıtlamalar (lider, arka, üst, alt) ilave işaretli
  6. UIView (görünüm 2'de eklenen görünüm) ve ana görünümde "Genişlik Eşit" kısıtlamasını ekleyin.
  7. UITextView'de 5 kısıtlama (öndeki, sonda, üstte, altta, yükseklikte) ekleyin. Bu adımdan sonra kısıtlamalarla ilgili herhangi bir hata ve uyarı almamalısınız.
  8. UITextView yükseklik kısıtlamasını ViewController'da IBOutlet ekleyin. @property (nonatomic, weak) IBOutlet NSLayoutConstraint *textViewHeightConstraint; ve bunları Storyboard'a bağlayın
  9. UITextView yükseklik kısıtlamasını programlı olarak değiştirin. self.textViewHeightConstraint.constant = [self.textView sizeThatFits:CGSizeMake(self.textView.frame.size.width, CGFLOAT_MAX)].height;

Tüm bu 10 adımdan sonra, UITcrollView'ı UITextView ile çalışacak ve mutlu olacaksınız.

+0

. Metni Değiştir Yüksekliği = Eşit 600'den Büyük veya Eşit 600'ü değiştirebilirsiniz. – emresancaktar

+2

Kısacası, buradaki önemli kısım, aynı sorunla karşılaştığımda, UIScrollView içinde düz bir UIView eklemenin gerekli olduğunu ve ardından UIScrollView yerine bu UIView içindeki tüm öğeleri yerleştirebildiğimi doğrulayabilmemdir. Aksi takdirde, Scrollview içindeki çok satırlı UITextViews, genişliklerini ve yüksekliklerini doğru bir şekilde otomatik olarak ayarlamaz. –

+0

Bu yaklaşımla textField dosyasını düzenleyemiyorum, kaydırma görünümü dokunmatik olayları geçersiz kılıyor görünüyor:/ – OxenBoxen

7

Bu sorunun birçok insan için çalışmış bir cevabı var gibi görünüyor.

bir kaydırma görünümü içinde bir metin görünümü Yerleştirme: Ancak, documentation devletler unutulmamalıdır. Metin görünümleri kendi kaydırma işlemlerini gerçekleştirir. Metin görüntüleme nesnelerini kaydırma görünümlerine katmamalısınız.Bunu yaparsanız, beklenmeyen davranışlar ortaya çıkabilir çünkü iki nesne için dokunma olayları karıştırılabilir ve yanlış şekilde işlenebilir.

Bir UIScrollView numaralı telefona bir UITextView göndermeden önce, bunun gerçekten gerekli olup olmadığını düşünmelisiniz. Metin görünümü, kaydırma görünümünde karmaşık bir düzenin parçasıysa, kabul edilen yanıtta UIView kapsayıcısının kullanımına dikkat edin. Ben UITextView dinamik yükseklik için yüksekliğini hesaplamak için nasıl örnek çalışma var Scroll Views Inside Scroll Views

+1

Metin Görünümü kaydırması devre dışı olduğunda iyi çalışıyor. – n13