https://developer.apple.com/documentation/uikit/uihovergesturerecognizer
"A discrete gesture recognizer that interprets pointer movement over a view."
뷰에 대한 포인터 움직임을 해석하는 이산적 제스쳐 리코그나이저입니다.
class UIHoverGestureRecognizer : UIGestureRecognizer
macOS와 iPadOS 기기에서 사용자는 UI 요소에서 포인터를 움직일 수 있습니다. 몇 가지 UI 디자인의 경우 포인터가 요소에서 움직이는 시점(다른 사용자 상호작용은 없이)을 아는 것은 중요합니다. 대표적으로 마우스 버튼 클릭이 있습니다. 예를 들어 하이퍼링크에 대한 텍스트는 포인터가 링크로 움직일 때 색상을 변경하거나 밑줄이 나오는 형태로 나타날 것입니다. 이는 롤오버 효과를 생성합니다.
Note
iOS에서 이 클래스는 제스쳐를 인식하지 않습니다.
앱에서 이와 같은 경험을 제공하려면, 뷰에 포인터가 움직일 때 반응하는 호버 제스쳐 리코그나이저를 추가해야 합니다. 목표 및 시스템이 호출하는 액션을 갖는 제스쳐 리코그나이저를 제공해야 합니다. 시스템이 호출하는 액션은 포인터 진입, 빠져나오기, 뷰로 이동하는 액션을 말합니다. UIHoverGestureRecognizer
는 iOS에서 작동하는 앱인 경우 효과가 없습니다. 아래 코드는 예시를 보여줍니다.
Listing 1 The button's default color changes to red as the pointer moves over the button
class ViewController: UIViewController {
@IBOutlet var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let hover = UIHoverGestureRecognizer(target: self, action: #selector(hovering(_:)))
button.addGestureRecognizer(hover)
}
@objc
func hovering(_ recognizer: UIHoverGestureRecognizer) {
switch recognizer.state {
case .began, .changed:
button.titleLabel?.textColor = #colorLiteral(red: 1, green: 0, blue: 0, alpha: 1)
case .ended:
button.titleLabel?.textColor = UIColor.link
default:
break
}
}
}