Show a mark at the touched point on the View of SwiftUI.
RPReplay_Final1681306427.MP4
Set the following for a View of SwiftUI.
Text("Hello")
.touchTrack()
Alternatively, it can also be written as follows
TouchTrackingView {
Text("Hello")
}
Text("Hello")
.touchTrack() // show touch point
.touchPointRadius(8) // radius of mark on touched point
.touchPointOffset(x: 0, y: -10) // offset of mark position
.touchPointColor(.orange) // color of mark on touched point
.touchPointBorder(true, color: .blue, width: 1) // applying a border to touched points
.touchPointShadow(true, color: .purple, radius: 3) // shadow on touched points
.touchPointDisplayMode(.recordingOnly) // display mode of touched points
.showLocationLabel(true) // show touch coordinate
It is also possible to display images as follow
Text("Hello")
.touchPointImage(Image(systemName: "swift").resizable())
If you want to adapt it to the entire app created with UIKit, write the following.
Use a view named TouchTrackingUIView
import TouchTracker
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let v = TouchTrackingUIView(isShowLocation: true)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
if let window {
window.addSubview(v)
v.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
v.topAnchor.constraint(equalTo: window.topAnchor),
v.bottomAnchor.constraint(equalTo: window.bottomAnchor),
v.leftAnchor.constraint(equalTo: window.leftAnchor),
v.rightAnchor.constraint(equalTo: window.rightAnchor),
])
}
return true
}
The following configuration allows you to share a touch event received in one window with other windows.
v.shouldPropagateEventAcrossWindows = true
In the given configuration, even when windows overlap, typically only one window receives a touch event. Moreover, if a touch event starts in one window, such as Window A, it will only be responsive in Window A, even if it moves to another window, like Window B.
Therefore, the touch event can be shared so that the marker of the tapped point will be displayed in the other window even in such a case.
TouchTracker is released under the MIT License. See LICENSE