隐藏Row中单个项目的视图(collectionViewCell Item)

时间:2016-06-17 04:57:02

标签: ios swift uicollectionviewcell

有时我的ColectionViewCell的进度条不可见,
 我在每一行和下面都有一些项目我试图隐藏单个项目的ProgressBar,但我的进度条隐藏在一行的所有项目中

final

任何想法如何解决这个???

2 个答案:

答案 0 :(得分:2)

只是简短的概述,所以你得到答案

UICollectionView经过高度优化,因此只在内存中保留屏幕上可见的行。现在,所有行单元格都缓存在池中并被重用而不是重新生成。每当用户滚动UICollectionView时,它会在Pool中添加刚刚隐藏的行,并重新使用它们作为可见行。

所以,现在,回答你的问题

当您滚动CollectionView时,会为每个indexPath再次调用collectionView数据源方法,并重新使用隐藏的单元格。因此,在其他单元格中,您隐藏进度条,重新使用它仍然显示隐藏进度条

  • (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

<强>解

重新调整每个CELL的进度条可见性调用cellForItemAtIndexPath

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

        cell.loaderView.hidden =  false //RESET ITS VISIBILITY


        let url = NSURL(string: "\(attachedImgUrlDict[collectionView.tag]![indexPath.item])")// its a Url 
            cell.imgViewOfCell.sd_setImageWithURL(url, placeholderImage: nil, options: SDWebImageOptions.CacheMemoryOnly, progress: {

                //SAME CODE

            }
        return cell
    }

答案 1 :(得分:2)

假设您在UICollectionView中有固定数量的单元格。

解决此类问题的提示when you have controls in UICollectionViewCell or UITableViewCell, give tag to your controls depending upon your indexPath

案例1:如果CollectionView是截面的,那么你的标签就像[0] [0],[1] [0] ......在这种情况下做类似的事情,

collectionViewCell.progressBar.tag = [[NSString stringWithFormat:@"%ld%ld",(long)indexPath.section,(long)indexPath.item] intValue]; // If it is sectional collection view

案例2:如果集合视图是非截面的,请执行以下操作,

collectionViewCell.progressBar.tag = [[NSString stringWithFormat:@"%ld",(long)indexPath.item] intValue]; // If it is non-sectional collection view

希望这可以解决您的问题或让您相应地进行管理。 如果你的单元格中有多个控件,那么只需给出indexPath.item + 1 + 2 ...

等标签