UIButton 实例是否有一个工具提示属性,当鼠标悬停在按钮上时将显示文本?
UIButton 是一个 iOS 类。
没有鼠标。
由于IOS中没有鼠标,因此UIButton没有“鼠标悬停”或tooltip属性。
但是您可以尝试使用事件处理来模拟。
如果用户触摸按钮并按住手指,则会显示文本。 如果用户触摸,他喜欢选择该按钮。 如果用户确实移出按钮并结束触摸,则工具提示将被隐藏。
检查UIButton的UIControlEvent,即“Touch Up Inside”“Touch Drag Enter”“Touch Drag Exit”
确实,您在 iOS 中没有鼠标,但现在我们有了 Catalyst,可以让您在 macOS 上运行 ios 应用程序,我们有了鼠标。
对于您可以使用的任何 UIView :
addGestureRecognizer(UIHoverGestureRecognizer(target: self, action: #selector(hoverEvent(_:))))
并在实施中做你想做的事情,例如:
@objc
func hoverEvent(_ sender: UIHoverGestureRecognizer? = nil) {
switch sender?.state {
case .began, .changed:
myButton.isHidden = false
case .ended, .cancelled, .failed, .possible:
myButton.isHidden = true
default:
break
}
}
向工具栏添加悬停手势:
//悬停
让悬停 = UIHoverGestureRecognizer(目标: self, 操作: #selector(self.hovering(_:))) self.toolBar?.addGestureRecognizer(悬停)
循环工具栏的按钮并分配一个UIToolTipInteraction:
@objc func悬停(_识别器:UIHoverGestureRecognizer){
let location = recognizer.location(in: self.toolBar)
let buttons = self.toolBar?.items ?? []
// state
switch recognizer.state {
case .began, .changed:
for button in buttons {
let view = button.value(forKey: "view") as? UIView
if view?.frame.contains(location) ?? false {
view?.backgroundColor = UIColor.init(
red: 33.0/255.0,
green: 33.0/255.0,
blue: 33.0/255.0,
alpha: 1.0)
let interaction = UIToolTipInteraction(defaultToolTip: button.title)
view?.addInteraction(interaction)
} else {
view?.backgroundColor = .clear
}
}
break
case .ended:
for button in buttons {
let view = button.value(forKey: "view") as? UIView
view?.backgroundColor = .clear
}
break
default:
break
}
}