gpt4 book ai didi

ios - UICollectionView 在选择时放大单元格

转载 作者:可可西里 更新时间:2023-11-01 01:01:54 25 4
gpt4 key购买 nike

我想在选中时调整 Collection View 中特定单元格的大小。我从以前的帖子中找到了如何执行此操作,但遇到了问题。我在调试时发现选择落后了一个,但我不确定为什么。

例如,如果我通过点击选择一个单元格,则什么也不会发生。如果我之后选择另一个单元格,那么我选择的第一个单元格会被放大。如果我选择第三个单元格,则第二个单元格会放大。等等。

这就是我实现它的方式,只有一次像我想要的那样同时放大单元格:

var selectedIndexPath: NSIndexPath!
func collectionView(collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
if selectedIndexPath != nil { //We know that we have to enlarge at least one cell
if indexPath == selectedIndexPath {
return CGSize(width: self.gallery.frame.size.width, height: self.gallery.frame.size.width)
}
else {
return CGSize(width: self.gallery.frame.size.width/3.0, height: self.gallery.frame.size.width/3.0)
}
}
else {
return CGSize(width: self.gallery.frame.size.width/3.0, height: self.gallery.frame.size.width/3.0)
}
}

func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
if selectedIndexPath != nil && selectedIndexPath == indexPath
{
selectedIndexPath = nil //Trigger large cell set back to normal
}
else {
selectedIndexPath = indexPath //User selected cell at this index
}
collectionView.reloadData()
}

我在调试时发现选择以我上面描述的方式滞后于 didDeselectItemAtIndexPath 中,但不确定原因。

最佳答案

问题是您正在使用 func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath)

注意这句话:didDeselectItemAtIndexPath。

没有选择ItemAtIndexPath 是一种可行的方法。

关于ios - UICollectionView 在选择时放大单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com