【问题标题】:iOS 15 UICollectionView issue for UICollectionViewRecursionUICollectionViewRecursion 的 iOS 15 UICollectionView 问题
【发布时间】:2022-01-04 07:40:38
【问题描述】:

在 Xcode 12 和 iOS 14 之前,该应用程序运行良好,但当我升级到 Xcode 13 / iOS 15 后,我的应用程序停止工作并出现以下错误日志

2021-11-26 12:49:38.844428+0530 Mitaja[6170:102791] [UICollectionViewRecursion] cv == 0x7feb458e0000 Enabling recursion trigger logging
2021-11-26 12:49:39.040798+0530 Mitaja[6170:102791] [UICollectionViewRecursion] UICollectionView 0x7feb458e0000 Visible cells update scheduled with call stack:
 (
    0   UIKitCore                           0x00007fff24644a06 -[UICollectionView _setNeedsVisibleCellsUpdate:withLayoutAttributes:] + 107
    1   UIKitCore                           0x00007fff24675708 -[UICollectionView _invalidateLayoutWithContext:] + 1310
    2   UIKitCore                           0x00007fff246a660c -[UICollectionViewLayout invalidateLayoutWithContext:] + 200
    3   UIKitCore                           0x00007fff2469a329 -[UICollectionViewFlowLayout invalidateLayoutWithContext:] + 667
    4   UIKitCore                           0x00007fff246a3b5f -[UICollectionViewFlowLayout _didPerformUpdateVisibleCellsPassWithLayoutOffset:] + 430
    5   UIKitCore                           0x00007fff24653a33 -[UICollectionView _updateVisibleCellsNow:] + 10438
    6   UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    7   UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    8   UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    9   UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    10  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    11  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    12  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    13  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    14  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    15  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    16  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    17  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    18  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    19  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    20  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    21  UIKitCore                           0x00007fff24653af8 -[UICollectionView _updateVisibleCellsNow:] + 10635
    22  UIKitCore                           0x00007fff24657447 -[UICollectionView layoutSubviews] + 325
    23  UIKitCore                           0x00007fff255bcaad -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2962
    24  QuartzCore                          0x00007fff2893c2b6 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 548
    25  QuartzCore                          0x00007fff289474f1 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 65
    26  QuartzCore                          0x00007fff288830ca _ZN2CA7Context18commit_transactionEPNS_11TransactionEdPd + 652
    27  QuartzCore                          0x00007fff288bac47 _ZN2CA11Transaction6commitEv + 699
    28  QuartzCore                          0x00007fff288bbfc8 _ZN2CA11Transaction25flush_as_runloop_observerEb + 60
    29  CoreFoundation                      0x00007fff20368c77 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    30  CoreFoundation                      0x00007fff2036349c __CFRunLoopDoObservers + 541
    31  CoreFoundation                      0x00007fff20363a4c __CFRunLoopRun + 1126
    32  CoreFoundation                      0x00007fff20363103 CFRunLoopRunSpecific + 567
    33  GraphicsServices                    0x00007fff2c851cd3 GSEventRunModal + 139
    34  UIKitCore                           0x00007fff24ffbe63 -[UIApplication _run] + 928
    35  UIKitCore                           0x00007fff25000a53 UIApplicationMain + 101
    36  Mitaja                              0x0000000108209adf main + 63
    37  dyld                                0x000000010ca84e1e start_sim + 10
    38  ???                                 0x000000010f5854fe 0x0 + 4552414462
    39  ???                                 0x0000000000000000 0x0 + 0
    40  Mitaja                              0x0000000106ff7000 __dso_handle + 0
)


2021-11-26 12:49:40.736245+0530 Mitaja[6170:102791] [UICollectionViewRecursion] <UICollectionView: 0x7feb458e0000; frame = (122.5 0; 291.5 0); clipsToBounds = YES; hidden = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x600002764810>; layer = <CALayer: 0x600002d43b00>; contentOffset: {0, 0}; contentSize: {0, 0}; adjustedContentInset: {0, 0, 0, 0}; layout: <UICollectionViewFlowLayout: 0x7feb43fa4810>; dataSource: <Mitaja.JPostCardVC: 0x7feb452ed000>> is stuck in its update/layout loop. See previous logs in the "UICollectionViewRecursionCategory" to find callers that scheduled a recursive update
2021-11-26 12:49:40.736365+0530 Mitaja[6170:102791] *** Assertion failure in -[UICollectionView _setNeedsVisibleCellsUpdate:withLayoutAttributes:], UICollectionView.m:1511

应该有什么解决办法?
任何帮助将不胜感激。
我试了很多次都没有成功,请帮帮我。

编辑

“UICollectionView () 卡在其更新/布局循环中。发生这种情况的原因有很多,包括首选属性未返回一致大小的自调整视图。要调试此问题,请检查控制台用于“UICollectionViewRecursion”类别中的日志的应用程序。”

崩溃的错误描述

【问题讨论】:

    标签: uicollectionview uicollectionviewlayout ios15


    【解决方案1】:

    我们在使用 Xamarin.Forms 的 iOS 应用程序中遇到了同样的错误。我们能够通过在集合视图中明确指定项目的高度来解决该问题。不是永久的解决方案,但应该能让您度过崩溃。

    【讨论】:

      【解决方案2】:

      我在这里https://github.com/WenchaoD/FSCalendar/issues/1351 回答了类似的问题;初步判断是在layout中计算item size时item总宽度超过屏幕宽度。建议在计算item size时使用floor进行四舍五入,暂时解决这个问题;同样的代码是在ios15 Version 2之前可以正常运行;另外很奇怪我在iPhone 11上没有问题,在iPhone 11 Pro max上会出现闪退

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-26
        • 2021-09-28
        • 2021-11-14
        • 2023-03-10
        • 1970-01-01
        • 2021-11-22
        • 2021-11-19
        • 2021-12-24
        相关资源
        最近更新 更多