mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00

git-subtree-dir: submodules/Display git-subtree-mainline: 9bc996374ffdad37aef175427db72731c9551dcf git-subtree-split: 7bd11013ea936e3d49d937550d599f5816d32560
49 lines
1.5 KiB
Swift
49 lines
1.5 KiB
Swift
import UIKit
|
|
|
|
open class HighlightTrackingButton: UIButton {
|
|
private var internalHighlighted = false
|
|
|
|
public var internalHighligthedChanged: (Bool) -> Void = { _ in }
|
|
public var highligthedChanged: (Bool) -> Void = { _ in }
|
|
|
|
open override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
|
|
if !self.internalHighlighted {
|
|
self.internalHighlighted = true
|
|
self.highligthedChanged(true)
|
|
self.internalHighligthedChanged(true)
|
|
}
|
|
|
|
return super.beginTracking(touch, with: event)
|
|
}
|
|
|
|
open override func endTracking(_ touch: UITouch?, with event: UIEvent?) {
|
|
if self.internalHighlighted {
|
|
self.internalHighlighted = false
|
|
self.highligthedChanged(false)
|
|
self.internalHighligthedChanged(false)
|
|
}
|
|
|
|
super.endTracking(touch, with: event)
|
|
}
|
|
|
|
open override func cancelTracking(with event: UIEvent?) {
|
|
if self.internalHighlighted {
|
|
self.internalHighlighted = false
|
|
self.highligthedChanged(false)
|
|
self.internalHighligthedChanged(false)
|
|
}
|
|
|
|
super.cancelTracking(with: event)
|
|
}
|
|
|
|
open override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
|
|
if self.internalHighlighted {
|
|
self.internalHighlighted = false
|
|
self.highligthedChanged(false)
|
|
self.internalHighligthedChanged(false)
|
|
}
|
|
|
|
super.touchesCancelled(touches, with: event)
|
|
}
|
|
}
|