为啥我不能从我的 UICollectionView 中删除图像?

Posted

技术标签:

【中文标题】为啥我不能从我的 UICollectionView 中删除图像?【英文标题】:Why can't I remove images from my UICollectoinView?为什么我不能从我的 UICollectionView 中删除图像? 【发布时间】:2015-06-26 02:06:05 【问题描述】:

我有一个简单的设置。有一个按钮用作拨动开关。如果启用,用户应该能够通过简单地点击照片来删除它们。如果未启用,则点击时不会发生任何事情。

我最初将切换变量 remove 设置为 false。点按时,按钮会更改图像并将remove 更改为true。

var remove = false

@IBAction func removeButton(sender: AnyObject) 
    if remove == false 
        let image1 = UIImage(named: "Minus_sign_of_a_line_in_horizontal_position_64 (2)") as UIImage!
        removeButtonAppearance.setImage(image1, forState: .Normal)
        remove = true
     else if remove == true 
        let image2 = UIImage(named: "Minus_sign_of_a_line_in_horizontal_position_64") as UIImage!
        removeButtonAppearance.setImage(image2, forState: .Normal)
        remove = false
    

快进到我的UICollectionView 代码。

使用didSelectItemAtIndexPath() 函数,我检查remove 是否为真,如果是,我尝试清空单元格并重新加载UICollectionView 的数据。

这是我遇到问题的地方。简而言之,点击时没有任何反应。但是,如果我删除对remove 的检查,它可以正常工作。我做错了什么?

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) 
        if collectionView == collectionView2 
            let cell: ConfirmRequestsCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ConfirmRequestsCollectionViewCell
            if remove == true 
                requestsArray.removeAtIndex(indexPath.row)
                images2.removeAtIndex(indexPath.row)
                self.collectionView2.reloadData()
            
         else 
            let cell: ConfirmOffersCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ConfirmOffersCollectionViewCell
            if remove == true 
                offersArray.removeAtIndex(indexPath.row)
                images1.removeAtIndex(indexPath.row)
                self.collectionView1.reloadData()
            
        

【问题讨论】:

通过查看您的代码几乎无法判断问题所在。是时候设置一些断点并遍历它了。您的 removeButton 操作代码是否触发?是否调用了 didSelectItemAtIndexPath 方法?在最顶部设置一个断点,然后单步执行。 【参考方案1】:

我的 remove 变量是本地变量。我将它切换到全局,现在一切正常!

【讨论】:

以上是关于为啥我不能从我的 UICollectionView 中删除图像?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能从我的 java 程序运行批处理命令? [复制]

如果我可以从我的私人 IP 地址访问本地文件,为啥我不能从我的公共 IP 地址访问本地文件?

为啥我不能从我的 python 脚本创建可执行文件?

为啥我不能从我的 DataFrame 中的“日期”列中提取月份的列? [复制]

为啥我不能从我的 Xamarin Froms 应用程序发布到我的 .net 核心 web api

为啥我的 UICollectionView 大纲不起作用?