在 iOS 8 中,如何通过 Mail.app 实现长滑动删除手势

Posted

技术标签:

【中文标题】在 iOS 8 中,如何通过 Mail.app 实现长滑动删除手势【英文标题】:In iOS 8, how to implement long-swipe-to-delete gesture a la Mail.app 【发布时间】:2014-09-20 19:22:50 【问题描述】:

在 Apple 的 2014 年 WWDC 主题演讲中,他们在邮件应用程序中展示了一个手势,让您可以通过长滑来立即删除邮件。这与滑动然后点击删除按钮不同。下面是它的屏幕截图。有谁知道这是否可以作为公共 API 使用?我浏览了 WWDC 会议视频和文档,但无济于事。

如果可能的话,我更喜欢使用原生 API 而不是自定义类;这就是我问的原因。

提前致谢。

【问题讨论】:

这是一个自定义控件。您可以使用滚动视图自行实现,也可以使用可以提供类似结果的开源代码。 Apple 用于邮件应用的 API 是私有的。人们已经实现了类似的(尽管我总觉得苹果的外观要好得多)。老实说,不知道他们为什么要保密。 @mklbtz 你找到解决办法了吗? 不幸的是,Apple 似乎没有向开发人员提供这种行为。我最终决定不为我的应用使用滑动手势,但如果你仍然感兴趣,我可以尝试一些自定义单元格,this one 对我来说是最好的。 看看这个***.com/a/26956300/362310 【参考方案1】:

我发现使用标准表格视图是不可能的,您必须自己使用自定义表格视图单元格来实现它。

有很多库可以做到这一点,我发现 MGSwipeTableCell 是最好的 - 它有一个演示应用程序,可以复制 ios 8 邮件的行为,是一个很好的例子。

【讨论】:

【参考方案2】:

从 iOS 11 开始,终于有了一种使用 UIKit API 的正式方法。它们现在被称为“滑动动作”,它们可以是“领先”或“尾随”,甚至包括一张图片。 UITableViewDelegate 方法称为leadingSwipeActionsConfigurationForRowAt。我是从Use Yiur Loaf了解到的

【讨论】:

以上是关于在 iOS 8 中,如何通过 Mail.app 实现长滑动删除手势的主要内容,如果未能解决你的问题,请参考以下文章

即使用户已卸载 Mail.app,如何在我的应用程序中添加电子邮件链接仍然有效?

如何在Mail.app中运行的applescript中使用钥匙串中的密码?

如何通过 AppleScript 设置当前 Mail.app 外发消息的发件人?

使用 iOS 中的共享扩展从 Mail App 共享附件

复制 iOS Mail App 的 Compose Function 的风格

Cocoa:如何在 Mail.app 中绘制插入文本?