【发布时间】:2020-10-12 00:08:12
【问题描述】:
我有一个集合视图,其中每个单元格都有一个删除按钮。我在 cellForItemAt indexPath 函数中添加了以下代码。
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellTwo", for: indexPath) as! CustomCellTwo
cell.deleteButton.layer.setValue(indexPath.row, forKey: "index")
cell.deleteButton.addTarget(self, action: #selector(deleteCell), for: .touchUpInside)
最初它看起来好像工作得很好。但是,我发现如果我来回滚动然后点击删除按钮,则在第一次点击时不会调用添加目标函数。如果我再次点击,它会按预期工作。只有第一次点击不起作用。
几个小时以来,我一直在努力寻找原因和解决方案...请帮助提供任何想法和建议。
【问题讨论】:
-
所以在你触摸 collectionView 后 addTarget 正在工作......但直到滚动才工作
-
当我点击按钮而不滚动时,添加目标正在工作。但奇怪的是,如果我来回滚动然后点击一个离开屏幕并回到屏幕上的单元格(因为滚动),那么添加目标在第一次点击时不起作用。该按钮在视觉上对我的点击做出反应,但没有调用添加目标。添加目标仅在我再次点击单元格时才有效,因此它在我第二次点击时有效(但前提是我在第二次点击之前不再滚动)。看起来当单元格被滚动时,集合视图控制器会与按钮混淆......
-
更好的设计理念是在单元类而不是控制器类中执行操作
标签: ios swift uibutton uicollectionviewcell addtarget