xcode UI上下文菜单交互:如何手工辞退?

n8ghc7c1  于 2023-01-14  发布在  其他
关注(0)|答案(2)|浏览(102)

当UIContextMenuInteraction/UITargetedPreview可见时,是否可以手动关闭它?例如,当应用程序转到后台时,我希望手动关闭它。
https://kylebashour.com/posts/context-menu-guide

xyhw6mcr

xyhw6mcr1#

我对同样的事情很感兴趣,在源视图控制器上调用UIViewController.dismiss(animated:completion:)会将其视为模态表示的控制器。

ahy6op9u

ahy6op9u2#

UIContextMenuInteraction有一个名为dismissMenu的方法。
我相信这是您在需要隐藏菜单时更愿意调用的,因为如果您有另一个模态显示的控制器,并且您不确定菜单是否处于活动状态,则调用dismiss(animated:completion:)可能会导致不必要的行为。
此外,从iOS 13.2开始,您可以将contextMenuInteraction作为UICollectionView的属性进行访问,并调用dismissMenu
contextMenuInteraction也可用作iOS 14.0及以上版本的UITableView的属性
当你的最低iOS版本是13.0时,你需要在collectionView中取消一个单元格的菜单,这就变得相当复杂了。这是我目前遇到麻烦的一个障碍。我相信唯一合适的方法是在这个方法中创建、保存并提供一个自定义的PreviewViewController:

collectionView(collectionView: contextMenuConfigurationForItemAt: point:) -> UIContextMenuConfiguration?

访问自定义PreviewViewController时,您可以随时对其调用dismiss(animated:completion:)方法。

相关问题