在Swift中,当触摸按钮外部时,按钮会继续保持高亮状态。这是因为按钮的默认行为是在按下时高亮显示,并在松开手指时恢复正常状态。如果你希望在触摸按钮外部时取消按钮的高亮显示,你可以通过以下几种方式来实现:
@IBAction func handleTapOutsideButton(_ sender: UITapGestureRecognizer) {
if !button.frame.contains(sender.location(in: view)) {
button.isHighlighted = false
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
if let touch = touches.first {
let touchPoint = touch.location(in: self)
if !button.frame.contains(touchPoint) {
button.isHighlighted = false
}
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
button.isHighlighted = false
}
button.addTarget(self, action: #selector(buttonTouchDragExit), for: .touchDragExit)
@objc func buttonTouchDragExit() {
button.isHighlighted = false
}
以上是在Swift中取消按钮在触摸按钮外部时的高亮显示的几种方法。根据具体的需求和场景,你可以选择适合的方法来实现你想要的效果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云