当UIContextMenuInteraction/UITargetedPreview可见时,是否可以手动关闭它?例如,当应用程序转到后台时,我希望手动关闭它。
https://kylebashour.com/posts/context-menu-guide
当UIContextMenuInteraction/UITargetedPreview可见时,是否可以手动关闭它?例如,当应用程序转到后台时,我希望手动关闭它。
https://kylebashour.com/posts/context-menu-guide
2条答案
按热度按时间xyhw6mcr1#
我对同样的事情很感兴趣,在源视图控制器上调用
UIViewController.dismiss(animated:completion:)
会将其视为模态表示的控制器。ahy6op9u2#
UIContextMenuInteraction
有一个名为dismissMenu
的方法。我相信这是您在需要隐藏菜单时更愿意调用的,因为如果您有另一个模态显示的控制器,并且您不确定菜单是否处于活动状态,则调用
dismiss(animated:completion:)
可能会导致不必要的行为。此外,从iOS 13.2开始,您可以将
contextMenuInteraction
作为UICollectionView
的属性进行访问,并调用dismissMenu
。contextMenuInteraction
也可用作iOS 14.0及以上版本的UITableView
的属性当你的最低iOS版本是13.0时,你需要在collectionView中取消一个单元格的菜单,这就变得相当复杂了。这是我目前遇到麻烦的一个障碍。我相信唯一合适的方法是在这个方法中创建、保存并提供一个自定义的PreviewViewController:
访问自定义PreviewViewController时,您可以随时对其调用
dismiss(animated:completion:)
方法。