您好,我使用侧滚动UICollectionView
来显示用户制作的人群。这些组存储在我的服务器上,当视图加载时,它们从服务器加载。但是我希望第一个单元格始终相同,这是一个允许您创建组的单元格。这是我需要的布局。
我知道如何使用多个不同的自定义单元格,但是我如何制作它以使第一个单元格是静态的,并且从我的服务器加载内容后的单元格?谢谢:))
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return familyName.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if indexPath.row == 0 {
let cell : AddGroupCollectionViewCell = collectionViewOutlet.dequeueReusableCellWithReuseIdentifier("Add", forIndexPath: indexPath) as! AddGroupCollectionViewCell
return cell
} else {
let cell : FriendGroupsCell = collectionViewOutlet.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! FriendGroupsCell
cell.groupImage.image = UIImage(named: "pp")
cell.groupNameLabel.text = familyName[indexPath.row]
return cell
}
}
这是我的代码,它错过了数组中的第一个人,因为索引路径跳过了它。我该如何修改它以便它可以工作
答案 0 :(得分:2)
UICollectionViewCell正在利用重用技术来提高性能。记住这一点。在单元格中没有任何东西可以是静态的,因为这个单元格稍后会在另一个索引上。
您可以使用collectionView:cellForItemAtIndexPath:
使第一个单元格始终通过indexPath.row == 0
加载相同的图片/标签
您可以使用prepareReuse
方法清理单元格中的资源。因此,如果2号单元格成为新的No.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
}