IOS Collection 视图单元格第一次单击并在视图出现时删除选择

Posted

技术标签:

【中文标题】IOS Collection 视图单元格第一次单击并在视图出现时删除选择【英文标题】:IOS Collection view cell first time click and removing selection when view appears 【发布时间】:2015-06-04 06:03:19 【问题描述】:

我正在使用集合视图,如果您第一次单击任何单元格,则在加载集合视图后,单击不起作用..如果您单击另一个单元格,则单击工作..重新加载集合时会发生这种情况。

我正在使用导航控制器并使用以下代码加载另一个视图:

let storyboard = UIStoryboard(name: "StoryBoard", bundle: nil)
let controller = storyboard.instantiateViewControllerWithIdentifier("ControllerID") as! UIViewController
self.navigationController?.pushViewController(controller, animated: true)

如果我们选择了一个单元格并导航到下一个视图,当返回到集合视图时,之前选择的元素不会被取消选择。所以该单击不适用于该单元格。如果您单击另一个单元格并返回并单击该单元格,它就会起作用。

【问题讨论】:

您的问题是:当用户单击集合视图单元格时,没有选择集合视图单元格? 【参考方案1】:

从数据源加载数据后,您应该重新加载UICollectionView 的数据,对于第一个问题,您在第一次单击时无法选择任何单元格。

对于您的第二个问题,当您从下一个视图返回时,项目被选中,因此您无法再次选择该项目,解决方案是您可以在从第一个屏幕移动到下一个视图时取消选择项目。

这样,

[collectionView deselectItemAtIndexPath:indexPath animated:YES];

如果需要的话,我很乐意为您提供更多帮助。

希望这对您有所帮助。

【讨论】:

谢谢病毒。问题在于我的代码。我使用了didDeselect 而不是didSelect 函数。 病毒,我认为你的回答会在其他情况下有所帮助。如果我们在ViewController 中使用集合视图,请告诉我们需要在哪里重新加载UICollectionView 的数据。【参考方案2】:

我的代码有问题。我用collectionView:didDeselectItemAtIndexPath代替collectionView:didSelectItemAtIndexPath

谢谢大家的回复。

【讨论】:

以上是关于IOS Collection 视图单元格第一次单击并在视图出现时删除选择的主要内容,如果未能解决你的问题,请参考以下文章

您好,我正在使用 Collection View 单元格,我想记录其中有多少被单击“变为真”并返回下一个视图控制器

在 ios 中展开和折叠表格视图单元格

iOS中删除单元格时UICollectionView的动画时间

ios的可扩展单元格表格视图最佳实践

单击表格视图单元格时启动默认电子邮件应用程序 - IOS

表格视图单元格可扩展 iOS