2016-04-04 13 views
2

Ben yavaş cihazlar için UITableViewController optimize etmek çalışıyorum ve nedenlerle birçok sorunu ortadan kaldırarak sonra neden bir tableview hala sonuncusu anlamaya çalışıyorum, yavaş olabilir heightForRowAtIndexPath veya cellForRowAtIndexPath almak için hiçbir çağrı yapılmadığı bir sırada en pahalı çağrıları gösteren enstrümanlardan (tablonun dışına çıkmadan veya işlemden geçirilmeden tekrar tekrar ~ 10px kaydırarak).Uitableview denetleyicisini kaydırdıktan sonra layoutIfNeeded neden çağrılmalı?</p> <p><a href="https://i.stack.imgur.com/p7IiG.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/p7IiG.png" alt="enter image description here"></a> Bu ekran görüntüsü ...

Bu normal davranış mı? Sayfanın içeriği değişmiyorsa neden görüşmeye ihtiyaç duyulur?

+0

Tıpkı bir sağlık kontrolü gibi, tablo görüntüleme delegesi yöntemlerinizi buraya yapıştırır mısınız? –

cevap

1

Biz bu yöntem çağrıldığını tam olarak neden tanımlamak için bazı kodunu görmek gerekirdi ama en azından bu nedenlerden birinden olabilir: Hatta eğer kaydırma değişti ediliyor kısıtlamaları

  1. Bunu görmüyorsun, belki de UITableViewCell içinde etkilenebilirler?
  2. Tablo görünümü ile ilgili bir şey yok, görünümde yalnızca düzende başka bir şey var, belki de bir kısıtlama değişikliği yaptınız ...
  3. Aramanız, onu açıkça çağıran bir yöntem.

Ayrıca bunun yalnızca 'gerekirse' görünümünü düzenleyeceğini unutmayın.

+1

Basit bir tablo görünümü ... Kaydırma ile ilgili kod yok. Uygulanan tek yöntem, viewdidload, dizin yolundaki satır için hücre ve dizin yolundaki hücrenin yüksekliği (satırların/bölümlerin sayısı) – Mabedan

+1

Yüklendikten sonra hücre özelliklerinden herhangi birini ayarlıyor olabilir misiniz? (ör., bir resmi indirin ve gösterin) – ge0rges

2

Her kaydırma yaptığınızda, contentOffset'u değiştirirsiniz. contentOffset güncelleştirmeleri bounds, özellikle onun origin. Her bir bounds, sonraki güncelleme döngüsünde düzen gereksinimi için alıcıyı değiştirir. Bu durumda, kaydırma göstergesi, tablo üstbilgileri ve altbilgileri gibi yüzer alt görünümlerin frame güncellenmesi ... Bu tamamen normal bir davranıştır ve bu konuda yapabileceğiniz hiçbir şey yoktur. Endişelenme, yeniden görüntüleniyorsun, yeniden çizilmiyorsun.

İlgili konular

 İlgili konular