ไม่มีใครรู้ว่าเหตุใด contentSize จึงไม่อัปเดตทันทีหลังจากเรียกใช้ reloadData บน UICollectionView
หากคุณต้องการทราบ contentSize งานที่ดีที่สุดที่ฉันพบคือ:
[_collectionView reloadData];
double delayInSeconds = 0.0001;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^(void)
{
// TODO: Whatever it is you want to do now that you know the contentSize.
});
แน่นอนว่านี่เป็นแฮ็กที่ค่อนข้างเปราะบางซึ่งตั้งสมมติฐานเกี่ยวกับการใช้งานของ Apple แต่จนถึงขณะนี้ได้รับการพิสูจน์แล้วว่าทำงานได้ค่อนข้างน่าเชื่อถือ
ไม่มีใครมีวิธีแก้ไขหรือความรู้อื่นใดเกี่ยวกับสาเหตุที่เกิดเหตุการณ์เช่นนี้หรือไม่ ฉันกำลังถกเถียงกันเรื่องการส่งเรดาร์เพราะฉันไม่เข้าใจว่าทำไมพวกเขาจึงไม่สามารถคำนวณ contentSize ในการรันลูปเดียวกันได้ นั่นคือวิธีที่ UITableView ทำงานสำหรับการนำไปใช้งานทั้งหมด
แก้ไข: คำถามนี้ใช้เพื่ออ้างอิงเมธอด setContentOffset ภายในบล็อกเพราะฉันต้องการเลื่อนมุมมองคอลเลกชันในแอปของฉัน ฉันได้ลบการเรียกเมธอดแล้วเนื่องจากคำตอบของผู้คนเน้นไปที่เหตุใดฉันจึงไม่ใช้ scrollToItemAtIndexPath ภายในว่าเหตุใดจึงไม่อัปเดต contentSize
layoutIfNeeded
บนUICollectionView
ก่อนที่จะเข้าถึงcontentSize
- person onmyway133   schedule 05.03.2020