Swift UICollectionView将第一个单元格设置为始终为特定内容

Swift UICollectionView将第一个单元格设置为始终为特定内容,swift,uicollectionview,uicollectionviewcell,uicollectionviewlayout,Swift,Uicollectionview,Uicollectionviewcell,Uicollectionviewlayout,大家好,我正在使用侧滚UICollectionView来显示用户创建的人员组。这些组存储在我的服务器上,当视图加载时,它们从服务器加载。但是,我希望第一个单元格始终相同,这是一个允许您创建组的单元格。这就是我需要的布局 我知道如何使用多个不同的自定义单元格,但如何使第一个单元格是静态的,而从服务器加载内容后的单元格是静态的?谢谢:) 这是我的代码,它遗漏了数组中的第一个人,因为索引路径跳过了它。如何修改它使其工作UICollectionViewCell正在利用重用技术来提高性能。记住这一点。单

大家好,我正在使用侧滚
UICollectionView
来显示用户创建的人员组。这些组存储在我的服务器上,当视图加载时,它们从服务器加载。但是,我希望第一个单元格始终相同,这是一个允许您创建组的单元格。这就是我需要的布局

我知道如何使用多个不同的自定义单元格,但如何使第一个单元格是静态的,而从服务器加载内容后的单元格是静态的?谢谢:)


这是我的代码,它遗漏了数组中的第一个人,因为索引路径跳过了它。如何修改它使其工作

UICollectionViewCell正在利用重用技术来提高性能。记住这一点。单元格中的任何内容都不能是静态的,因为该单元格稍后将位于另一个索引上

您可以使用
collectionView:cellForItemAtIndexPath:
使第一个单元格始终通过
indexPath.row==0加载相同的图像/标签

您可以使用
prepareReuse
方法清理单元格中的资源。因此,如果2号细胞将成为新的1号细胞,它将有机会清理旧资源

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell : AddGroupCollectionViewCell = collectionViewOutlet.dequeueReusableCellWithReuseIdentifier("Add", forIndexPath: indexPath) as! AddGroupCollectionViewCell
    if indexPath.row == 0 {
        cell.groupImage.image = UIImage(named: "new")
        cell.groupNameLabel.text = "new"
    } else {
        cell.groupImage.image = UIImage(named: "pp")
        cell.groupNameLabel.text = familyName[indexPath.row]
    }
    return cell
}

您不必使用两个单元格标识符,因为第一个和其他单元格标识符没有区别。他们只是不同的外表和事件。只需使用一个并定制它们。当然,您可以根据需要使用两个标识符,但关键是您知道如何做到这一点。。。我想现在很明显了。我明白了,我用这个。但即使这样,它仍然会跳过我的familyName数组中的第一项,因为第一次调用它时,它将是0,第二次调用它时,它将是1,这意味着它将跳过familyName[0],这是我无法拥有的吗?我可以使用indexath.row-1,但这是一种糟糕的做法,不是吗?自从您设计了它以来,就没有任何糟糕的做法。只需将它们统一到一个数组中,或者您只需-1。好的,我在我的行计数中添加+1,在我的朋友索引路径中添加-1,现在就可以了!非常感谢。
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell : AddGroupCollectionViewCell = collectionViewOutlet.dequeueReusableCellWithReuseIdentifier("Add", forIndexPath: indexPath) as! AddGroupCollectionViewCell
    if indexPath.row == 0 {
        cell.groupImage.image = UIImage(named: "new")
        cell.groupNameLabel.text = "new"
    } else {
        cell.groupImage.image = UIImage(named: "pp")
        cell.groupNameLabel.text = familyName[indexPath.row]
    }
    return cell
}