Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

UITextView içinde resim görüntüleme sırasında auto height sorunu.

0 oy
53 kez görüntülendi
13, Ocak, 2016 ios development kategorisinde huseyinvural tarafından soruldu
13, Ocak, 2016 huseyinvural tarafından düzenlendi

http://forum.yasinturkoglu.com/800/uitextview-asenkron-resim-ekleme

Yukarıda linki olan, konuda aynı soruna değindim, çözümüz daha göz önünde olması için yeni bir konuyla yukarı taşıma gereği hissetim. Platform açısından daha yararlı olacağını düşündüm.

Tableview içinde, olan uıtextview içine asenkron olarak resim yüklemeye çalışıtığımda eğer textview ait scrool enebled check edilmemeise, muhtemelen textivew in resim yüklendikten sonraki boytu table celle ait boyutu aştığı için textview içindeki resimler görünmüyor ve table cell gerekli yüksekliğe gelmiyor.

Aşağıda linkini veridğim örnek uygulamada scrool enabled ama düzgün bir görünüm elde etmek için disabled olması gerekiyor, bu şekilde yaparsamda yukarıda bahsetiğim problem baş gösteriyor. 

Bu ve bunun dışında aklma takılan bir iki noktayı kdoların arasında yorum olarak yazdım, eğer cevaplayabilirseniz beni büyük bir derten kurtarırsınız.

Örnek app linki 

https://drive.google.com/open?id=0B4MEF11v_cH3OHZyOGtnX3JIWmM

Uygulamayı açtığınzda resimler görüntüleniyor fakat hücrelerin dikey boyutnun uıtextivew boutuna erişmesi için scrool disabled yapıp uygulamımı çalıştırdığımda, malesef resim görüntüleyemiyorum.

 

1 cevap

+1 oy
13, Ocak, 2016 yasin tarafından cevaplandı
14, Ocak, 2016 huseyinvural tarafından seçilmiş
 
En İyi Cevap

verdiğiniz örnek de gereken düzenlemeleri yaptım ve mümkün olduğunca açıklamalarını yazmaya çalıştım. Çok vaktim yok fazla detaylı yazamadım. Kafanıza takılan bir yer olursa sorarsınız. Yarın yine yardımcı olmaya çalışırım.

https://drive.google.com/file/d/0B_33To7xgYO7RENwcm1kaUl3Wlk/view?usp=sharing

15, Ocak, 2016 yasin tarafından yorumlandı
ahaha pardon ya, en son verdiğim örnek'de updateCellHeightAtIndex içerisinde daha sonradan bir ekleme daha yapmıştım onu görmediniz tabi. pardon.

yeni cell ölüçüsünü currentCellAtt.cellHeight'e set ederken beginUpdates ve end updates'le wrap ediyoruz.

en son hali yukarıda, onu kullanın. denedim gönderdiğiniz proje üzerinde. çalışıyor.
15, Ocak, 2016 huseyinvural tarafından yorumlandı
15, Ocak, 2016 huseyinvural tarafından düzenlendi
anladımm,şahane oldu :) çok özür dileyerek kısa birşey daha sormak istiyorum unutmuşum.

sayfayı çok hızlı scrool etiğimde (en aşağı veya hızlıca yukarı)

self.delegate.updateCellHeightAtIndex(currentCellAttribute)

fonksiyon çağrıldığı sırada nesnesi tanımlanamamış oluyor, ve unexpectedly found nil while unwrapping an Optional value hatası alıyorum bu tanımlamayı if .... {  } blogu içinde bile yapsam gene hızlı scroolarda bu hatayı alabiliyorum.

bunun nasıl önüne geçebilirim.
15, Ocak, 2016 yasin tarafından yorumlandı
işte işler şimdi karıştı. :)

dün hızlıca bakmamdan dolayı gözden kaçırdığım bir sürü hata su yüzüne çıktı teker teker.
yapı çok yanlış.

öncelikle,
unexpectedly found nil hatasını almanızın nedeni.
viewController'da tableView delegate metodu olan cellForRowAtIndexPath için benim gözden kaçırdığım bir detay.

tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as? tableCell

kullanmak yerine,

tableView.dequeueReusableCellWithIdentifier("tableCell") as? tableCell

kullanmışım.

bu performans problemlerine ve delegate metodunun çağrılması sırasında yukarıdaki hataya neden oluyor.
bu hatayı fark edip düzelttikten sonra, yukarıdaki problem düzeldi. fakat bu defada cell'lerin içerisindeki veri ve imajların scroll edildikçe yeniden ve yeniden defalarca yüklendiğini fark ettim ki, bunun nedeni sizin tüm bu requestlerinizi, link imaj çevrimlerinizi custom cell class'ı içerisinde gerçekleştiriyor olmanız.

bu işlem viewController'da yapılmalı ve bir array'a aktarılmalı, bu sayede ilgili index'de bulunan tableViewCell scroll edildiğinde daha önce oluşturulmuş veri ilgili cell'in textView'ine yazılabilsin.

şu an tüm bu işlemler cell'ler görünür alana girdikleri anda gereksiz bir şekilde defalarca
tekrarlanıyorlar.
15, Ocak, 2016 huseyinvural tarafından yorumlandı
anladım, ben bir örnekle daha çalışıyorum, uygulamanın bütün hali orada.
cell içersinde haneke kütüphanesinin tekrar yüklenmesini istemediğim için, zaten protocol mantığından uzak durup viewcontroller içinde yapmaya başlamıştım. Bunun farkına  varmamı sağladınız, tekrar teşekkür ederim.

Uygulamamı üyelerimize duyurduğumda, platformunuzun insanlara yardımından bahsetmeyi ihmal etmiyeceğim. Umarım burayı daha fazla insan ziyaret eder.
Yazılım üstüne böyle bilgi dolu platformların olması, geliceğimiz için ümit veriyor.
15, Ocak, 2016 yasin tarafından yorumlandı
teşekkürler.
lütfen siz de ios konularında edindiğiniz tecrübelerinizle buraya katkınızı esirgemeyin. :)
...