UITableView'un içerik boyutu, bir ekleme/silme çağrısı yaptıktan sonra güncellendiğinde merak ediyorum. Animasyonun tamamlanmamasına rağmen çerçeve boyutu/içerik boyutunun hemen güncellenmesi en çok [UIView animasyonu ...] bloğu gibi olacağını düşündüm ama bu şekilde görünmüyor. Herhangi bir fikir?UITableView içerik boyutu, satır ekleme/silme animasyonu ile ne zaman güncellenir
cevap
içerik boyutu yüksekliği hakkında delegelere çağrıda sonra değişti olacak:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
Yanıt için teşekkürler. Yine de bana bildirilebilir veya içerik büyüklüğünün değiştiğini söyleyen herhangi bir delege yöntemi var mı? Animasyon tamamlandıktan sonra gerçekleşmiş gibi görünüyor ama ben yeni içerik boyutu BEFORE almayı umuyordum bu yüzden tablo etrafında şeyler canlandırabilir – SLEW
Ben bunu denedim ve tablo deyimi önce ve sonra log deyimleri koydu: heightForRowAtIndexPath: yöntem ve İçerik boyutu güncellenmedi. Ancak, bu bana içerik boyutunun ne olacağını hesaplamak için bana bir çözüm yolunda yardımcı oldu. Çözümü ayrı bir cevap olarak göndereceğim. – Daren
Ne yazık ki, ya bir UITableView satırları ekleme/silme zaman contentSize güncellemek için iyi bir yol bulmak mümkün olmamıştır, ancak Eklediğiniz/kaldırdığınız hücrelerin dizin yollarını biliyorsanız, ne olacağını hesaplamanın bir yolunu buldum.
Değiştirilen satırların dizin yolunu kullanarak, ilgili hücrelerin yüksekliğini tableView: heightForRowAtIndexPath: yöntemiyle hesaplayabilir ve tablo görünümünün geçerli içerik boyutu yüksekliğine ekleyebilirsiniz. Eğer sadece bir satır ekliyorsanız İşte bir örnek: Bu sizeThatFits()
benziyor
[self.tableView insertRowsAtIndexPaths:@[indexPathOfNewRow] withRowAnimation:UITableViewRowAnimationAutomatic];
CGFloat newCellHeight = [self tableView:self.tableView heightForRowAtIndexPath:indexPathOfNewRow];
CGFloat newContentSizeHeight = self.tableView.contentSize.height + newCellHeight
bekleyen bir yeni contentSize
yüksekliğini maruz bırakabilir. Daha sonra kaydırma animasyonları için bu sorunu çözmek için beklemede olan büyüklüğü atayabilirsiniz. Böyle görünümü denetleyicisi kod yazmak mümkün değilim
extension UIScrollView {
var pendingContentSize: CGSize {
var tallSize = contentSize
tallSize.height = .greatestFiniteMagnitude
return sizeThatFits(tallSize)
}
func scrollToBottom(animated: Bool) {
contentSize = pendingContentSize
let contentRect = CGRect(origin: .zero, size: contentSize)
let (bottomSlice, _) = contentRect.divided(atDistance: 1, from: .maxYEdge)
guard !bottomSlice.isEmpty else { return }
scrollRectToVisible(bottomSlice, animated: animated)
}
}
: Böyle bir şey ile
tableView.insertRows(at: [newIndexPath], with: .none)
tableView.scrollToBottom(animated: true)
ve tablo alt tüm yol ilerleyin var (yeni kullanılarak içerik boyutu) yerine 2. son satırına (eski içerik boyutunu kullanarak) ilerleyin.
- 1. Swift: UITableView ile Array Boyutu
- 2. UITableView animasyonunun ne zaman biteceğini nasıl anlarım?
- 3. UIView'nin boyutu ne zaman değişti?
- 4. PHPDoc'taki @author etiketi ne zaman güncellenir?
- 5. Denetim alanları ne zaman güncellenir? DDD
- 6. SQLAlchemy satır girişi nasıl güncellenir?
- 7. ggplot2'deki stat_smooth'un varsayılan satır boyutu nasıl güncellenir?
- 8. UITableView Üstbilgisinde arkasındaki içerik gösteriliyor
- 9. Tam metin dizini ne zaman sql sunucusunda güncellenir?
- 10. AsyncTaskLoader kullanarak ViewPager'ın Fragmanındaki içerik nasıl güncellenir?
- 11. Satır kaybolması için css animasyonu
- 12. UITableView düzenleme modundayken satır seçilmesi
- 13. getElementsByTagName ("*") her zaman güncellenir mi?
- 14. JCR (içerik deposu) diğer seçenekler üzerinde ne zaman kullanılmalıdır?
- 15. UITableView
- 16. Pop over denetleyicisindeki tabbar değiştirilirken UITableView ayrıntı görünümünde nasıl güncellenir?
- 17. UITableView'daki veriler nasıl güncellenir?
- 18. T-SQL Yalnızca alt/son satır nasıl güncellenir?
- 19. recyclerView.setHasFixedSize ne zaman kullanılır?
- 20. UITableView: düzenleme modunda yaklaşık satır hareket
- 21. Değerler dplyr ile güncellenir
- 22. UITableView,
- 23. UITableView
- 24. Ne zaman görev sayısı
- 25. Ne zaman getPermanentIDsForObjects :?
- 26. İçerik değişikliklerinden kaynaklanan geçiş öğesi boyutu
- 27. Market uygulama istatistikleri ne sıklıkla güncellenir?
- 28. iOS: Klavye görüntülendiğinde UITableView animasyonu devre dışı bırakılıyor
- 29. UITableView scrollToRowAtIndexPath üzerinde animasyonu kontrol etmenin bir yolu var mı?
- 30. UIStackView kullanarak Dinamik UITableView satır yüksekliği?
Bunu çözdünüz mü? Aynı problemle karşılaşıyorum. Satır ekleme/silme ve ardından tableView.contentSize'nin güncellenmesini beklemek, ancak bu zaman uyumsuz gibi görünüyor. – VaporwareWolf