iOS 8 UICollectionViewLayout在Swift中切换神秘崩溃

iOS 8 UICollectionViewLayout在Swift中切换神秘崩溃,第1张

概述我是UICollectionView的新成员.我正在尝试使用以下代码将UICollectionViewLayout从网格切换到列表,反之亦然: @IBAction func switchLayout(sender: AnyObject) { isGridLayout = !isGridLayout collectionView?.reloadData() if isGr 我是UICollectionVIEw的新成员.我正在尝试使用以下代码将UICollectionVIEwLayout从网格切换到列表,反之亦然:

@IBAction func switchLayout(sender: AnyObject) {    isGrIDLayout = !isGrIDLayout    collectionVIEw?.reloadData()    if isGrIDLayout {                    collectionVIEw?.performBatchUpdates({ () -> VoID in            self.collectionVIEw?.collectionVIEwLayout.invalIDateLayout()            self.collectionVIEw?.setCollectionVIEwLayout(self.grIDLayout,animated: true)            },completion: { (completion) -> VoID in        })    } else {                    collectionVIEw?.performBatchUpdates({ () -> VoID in            self.collectionVIEw?.collectionVIEwLayout.invalIDateLayout()            self.collectionVIEw?.setCollectionVIEwLayout(self.ListLayout,completion: { (completion) -> VoID in        })                }}

我一直在setCollectionVIEwLayout:animated:方法上遇到以下崩溃,我不明白.任何有关修复此崩溃的帮助都会很棒!

Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '*** setobjectForKey: object cannot be nil (key: <NSIndexPath: 0xc000000000000016> {length = 2,path = 0 - 0})'

该项目于github年开始提供.它是tutorial的修改形式.

解决方法 因为您在FlowLayout中设置了headerReferenceSize.这意味着collectionVIEw将具有补充视图.

因此注释掉headerReferenceSize的代码或在VIEwController中实现collectionVIEw(_:vIEwForSupplementaryElementOfKind:at :).

总结

以上是内存溢出为你收集整理的iOS 8 UICollectionViewLayout在Swift中切换神秘崩溃全部内容,希望文章能够帮你解决iOS 8 UICollectionViewLayout在Swift中切换神秘崩溃所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1027035.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存