XLPagerTabStrip 内的 Collectionview

Posted

技术标签:

【中文标题】XLPagerTabStrip 内的 Collectionview【英文标题】:Collectionview inside XLPagerTabStrip 【发布时间】:2016-05-23 06:40:07 【问题描述】:

我有一个可以运行的 CollectionView,还有一个 XLPagerTabStrip 也可以运行,但是当我在 IndicatorInfoProvider 中的 XLPagerTabStrip 中集成我的 CollectionView 时,我遇到了这个错误...

谢谢!

【问题讨论】:

【参考方案1】:

我遇到了类似的问题。看起来当您使用情节提要时,您不能简单地创建控制器的新实例并添加到页面列表中。如果您按如下方式创建子视图,则不会显示任何内容。

let child1 = new ChildViewController()

由于控制器上的所有视图在您尝试访问它们时都为零,因此会引发您在问题中提到的异常。

相反,您必须通过情节提要来创建它:

let child1 = storyboard!.instantiateViewControllerWithIdentifier("childViewIdentifier") as! ChildViewController

我在他们的 GitHub 存储库的一个问题中发现了这一点: https://github.com/xmartlabs/XLPagerTabStrip/issues/123

我认为它也应该在主要文档中提及。由于他们的示例项目没有使用 IB 来设计视图,因此也没有使用 instantiateViewControllerWithIdentifier,所以不是很明显。

无论如何,它解决了我的问题。希望它也对你有用。

【讨论】:

完美,它运行。我还在我实例化的控制器中初始化了我的编码器-> super.init(coder: aDecoder) @kike0kike 你应该选择这个答案为正确的! 非常感谢。这确实应该在文档中。我在这上面浪费了几个小时。【参考方案2】:

在你的类声明委托UICollectionView

类似:

class ViewController: UIViewController, UICollectionViewDelegate ...

【讨论】:

当然可以:class RecipeViewController : UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, IndicatorInfoProvider。如果我在没有 XLPagerTabStrip 的情况下使用这个 collectionView,它可以正常工作。【参考方案3】:

当你不使用故事板时,你可以这样实例化你的类:

let child = ChildViewController(nibName: "ChildViewController", bundle: nil)

【讨论】:

以上是关于XLPagerTabStrip 内的 Collectionview的主要内容,如果未能解决你的问题,请参考以下文章

XLPagerTabStrip 高度条

XLPagerTabStrip:不尊重状态栏

如何使用 XLPagerTabStrip

XLPagerTabStrip - 选定的选项卡选择不起作用

以编程方式切换子视图控制器:XLPagerTabStrip

XLPagerTabStrip 没有填满全宽