在Collection View控制器中添加一个额外的项目

时间:2013-04-07 07:08:46

标签: uibutton uicollectionview

我有一个有10个元素的数组。 我可以在集合视图中设置为项目。 现在我想添加第11个元素,它将是一个按钮。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

我这样做的方法是制作

collectionView:numberOfItemsInSection:

返回比我在数组中实际拥有的项目多一个。然后我在里面做了一个测试

collectionView:cellForItemAtIndexPath:

查看indexPath.row == myArray.count。如果是这样,您知道是时候在最后添加特殊按钮单元了。否则,您只是在集合视图中添加另一个真实单元格。

- (NSInteger) collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section
{
    return self->myArray.count + 1;
}

- (UICollectionViewCell*) collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath
{
    if(indexPath.row < self->myArray.count)
    {
        //add regular cell to the list
    }
    else
    {
        //at the end so add special button cell to the list
    }
}

建议您在渲染集合视图之前简单地向数组中添加一个虚拟对象。这是我尝试的第一种方法。确保它在正确的时间列在列表中而不是在正确的时间列表中是一个主要的痛苦。特别是如果你坚持这个对象列表,很容易陷入你不小心坚持假人的情况。

答案 1 :(得分:0)

如果我理解得很好,你应该:

  1. 子类UICollectionViewCell并为按钮添加IBOutlet;
  2. 添加一个新的原型单元格,设计它,为您的自定义类设置类并连接插座;
  3. 修改cellForItemAtIndexPath:如果indexPath.item为10,则包含你的newCell;
  4. 但是,当您可以使用带有didSelectItemAtIndexPath:方法的单元格“as”按钮时,避免使用UICollectionViews中的按钮是合理的。

答案 2 :(得分:0)

如果您要按阵列填充集合视图,那么要添加额外项目或新项目,只需将其添加到阵列中,通过在方法cellForItemAtIndexPath:中使用该数组填充集合视图,这样您就可以在集合视图中包含一个新单元格。