添加 UICollectionViewController 作为子 UIView 崩溃
Posted
技术标签:
【中文标题】添加 UICollectionViewController 作为子 UIView 崩溃【英文标题】:Adding a UICollectionViewController as a child UIView crashes 【发布时间】:2015-11-26 16:47:16 【问题描述】:我正在尝试在子 UIView
中添加自定义 UICollectionViewController
,但它会使我的应用程序崩溃。我的代码或我的CustomCollectionViewController
是如何实现的?
@IBOutlet weak var childView: UIView!
let myCollectionView = CustomCollectionViewController()
//inside viewDidLoad
self.addChildViewController(self.myCollectionView)
self.myCollectionView.didMoveToParentViewController(self)
self.myCollectionView.view.frame = self.childView.bounds<--crashes after executing this line
self.childView.addSubview(self.myCollectionView.view)
self.myCollectionView.delegate = self
【问题讨论】:
崩溃时是否报错? @Ollie 它在我的应用程序委托处崩溃并停止,并显示“线程 1:信号 SIGABRT” 是否也有相关的错误信息?如果不能,您可以发布堆栈跟踪,那么我们可以看到发生错误时调用了什么。我刚刚在一个演示项目中实现了您的代码,它似乎工作正常。 这不是你的 childView 没有连接到情节提要这样的傻事吗? 两个问题:childView 是否在该部分之前加载并显示?如果您将 collectionView 添加到主视图,它会起作用吗? 【参考方案1】:这可能有点晚,但请使用布局参数初始化您的CollectionViewController
。
代替:
let myCollectionView = CustomCollectionViewController()
使用:
let myCollectionView = CustomCollectionViewController.init(collectionViewLayout: UICollectionViewFlowLayout())
这对我有用。
【讨论】:
以上是关于添加 UICollectionViewController 作为子 UIView 崩溃的主要内容,如果未能解决你的问题,请参考以下文章