在Container - Swift中使用UICollectionViewController

时间:2014-08-22 17:38:13

标签: ios uiviewcontroller swift uicollectionview containers

我试图在我的MainViewController上使用嵌入在容器中的UICollectionViewController

如下所示:

enter image description here

这是我的CollectionViewController:

class ExistingProjectsCollectionViewController: UICollectionViewController, UICollectionViewDelegate, UICollectionViewDataSource {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Register cell classes
        self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

    }

    // MARK: UICollectionViewDataSource

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView!) -> Int {
        //#warning Incomplete method implementation -- Return the number of sections
        return 1
    }

    override func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int {
        //#warning Incomplete method implementation -- Return the number of items in the section
        return 1000
    }

    override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as UICollectionViewCell

        // Configure the cell

        return cell
    }

但是,出于某种原因,当我运行应用程序时,CollectionView会滚动,但不包含橙色框。

  • 我已尝试直接在MasterViewController上实现它, 这很好 - 所以它似乎与使用a有关 容器中的UICollectionViewController。

  • 我也尝试过关闭自动布局 - 但没有成功。

  • 我在Xcode 6 Beta 6上使用Swift。

  • 我确保我可重复使用的手机信号是" Cell"在故事板中

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:1)

问题可能就在这一行:

self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

您不需要也不应该注册任何课程,只是为了让单元格脱离故事板。如果需要,故事板可以指定单元类。基本上你是说“不要从故事板中获取单元格 - 只需使用普通的UICollectionViewCell”,这与你想要做的完全相反。

我按照你的描述创建了一个项目设置(从我的主视图控制器中嵌入segue),复制并粘贴你的代码,注释掉那一行,然后运行它。细胞看起来很好。