在 Swift 的 UIMenuController 中禁用 UIMenuItems 的 flickering/blinking
Disable the flickering/blinking of UIMenuItems in UIMenuController in Swift
如何去除 UIMenuController
中 UIMenuItems
的 flickering/blinking?我目前可以复制和粘贴项目,但是当我的应用程序在 UILongPressGestureRecognizer
的操作中显示菜单时,它们开始闪烁。
@objc func viewLongPressed(_ recognizer: UILongPressGestureRecognizer) {
[...]
UIMenuController.shared.setMenuVisible(true, animated: true)
}
在iOS中是否有任何实现?
这是因为如果您持续按识别器视图,UILongPressGestureRecognizer
事件会持续 被识别。重复调用 UIMenuController
的 setMenuVisible(animated:)
方法会导致您描述的闪烁效果。
要解决此问题,仅当识别器的状态为 .began
时才显示菜单。
@objc func viewLongPressed(_ recognizer: UILongPressGestureRecognizer) {
[...]
if recognizer.state == .began {
UIMenuController.shared.setMenuVisible(true, animated: true)
}
}
如何去除 UIMenuController
中 UIMenuItems
的 flickering/blinking?我目前可以复制和粘贴项目,但是当我的应用程序在 UILongPressGestureRecognizer
的操作中显示菜单时,它们开始闪烁。
@objc func viewLongPressed(_ recognizer: UILongPressGestureRecognizer) {
[...]
UIMenuController.shared.setMenuVisible(true, animated: true)
}
在iOS中是否有任何实现?
这是因为如果您持续按识别器视图,UILongPressGestureRecognizer
事件会持续 被识别。重复调用 UIMenuController
的 setMenuVisible(animated:)
方法会导致您描述的闪烁效果。
要解决此问题,仅当识别器的状态为 .began
时才显示菜单。
@objc func viewLongPressed(_ recognizer: UILongPressGestureRecognizer) {
[...]
if recognizer.state == .began {
UIMenuController.shared.setMenuVisible(true, animated: true)
}
}