为啥我不能从我的 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 中删除图像?的主要内容,如果未能解决你的问题,请参考以下文章
如果我可以从我的私人 IP 地址访问本地文件,为啥我不能从我的公共 IP 地址访问本地文件?
为啥我不能从我的 DataFrame 中的“日期”列中提取月份的列? [复制]