我想实现一个功能,使用 Swift 3.0 将整个表格单元格扫掉。比如在 iOS 10 的邮件应用中如何通过滑动来删除。
重要的是要注意,我并不是说滑动以显示删除按钮,然后处理删除。我的意思是用户可以在屏幕上从右向左滑动以删除。 (还要注意tableView是静态的,不是动态的)
我必须为此实现 UISwipleGestureRecognizer 吗?
最佳答案
您可以实现 UITableViewDataSource
方法 tableView(_:commit:forRowAt:)
和 tableView(_:canEditRowAt:)
对于包含动态内容的表格。
但是,在包含静态内容的表中,您不能插入或删除行。由于表是静态的,行应该保留。您可以做的是更新滑动的行以反射(reflect)已删除的状态。
例如:在我的应用程序中,我使用内置的滑动手势来重置设置。用户滑动行(静态内容),点击“删除”按钮,应用程序相应地在该单元格中设置标签和图像。该行不会被删除,它只是被更新,就像您通常对静态单元格所做的那样(分配 socket 并像访问其他静态内容一样访问它们)。
编辑:
还要检查 iOS 11 中 UISwipeActionsConfiguration
类的 performsFirstActionWithFullSwipe
属性。将其设置为 true
以允许完全滑动手势,无需安装您自己的识别器。
您确实提到了 iOS 10 邮件;我不知道 Apple 是否或如何在 iOS 10 中做到这一点,因为此属性是 iOS 11 的一项功能。 iOS 邮件也很可能有一个包含动态内容的表格。
关于ios - Swift - 在静态 UITableView 中滑动以删除(没有删除按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077968/