iPhone XR 和 iPhone XS 的 Peek 和 Pop

Peek and Pop for iPhone XR and iPhone XS

我想在我的应用程序中添加查看和弹出功能。我设法做到了,但现在我想添加对 iPhone 5s 和 iPhone Xr 的支持,其中没有 3D Touch。

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)
    if traitCollection.forceTouchCapability == .available {
        registerForPreviewing(with: self, sourceView: messagesTableView)
    }
}

如果我没理解错的话,唯一的办法就是长按实现。

  1. 我可以在不执行所有动作、模糊等的情况下强制调用非 3D 触摸设备 peek 吗?
  2. 我可以在用户长按时为非 3D 触摸设备调用原生(默认)peek 和 pop 吗? (触觉触摸)

您可以使用 PeekPop framework 为 Peek 和 Pop 提供向后兼容性。

可以通过 UIFeedbackGenerator 个子类生成触觉触摸。