Bonsoir,
J'ai un petit souci, j'essaie de détecter plusieurs doigts sur l'écran et ajouter un petit cercle autour d'eux.
Le code fonctionne bien pour un doigt mais lorsque que j'ajoute un doigt supplémentaire, le cercle disparait du premier pour aller sur le second..
J'aimerais que chaque doigt détecté ait son propre cercle,
Quelqu'un aurait une idée ?
Merci d'avance,
J'ai un petit souci, j'essaie de détecter plusieurs doigts sur l'écran et ajouter un petit cercle autour d'eux.
Le code fonctionne bien pour un doigt mais lorsque que j'ajoute un doigt supplémentaire, le cercle disparait du premier pour aller sur le second..
J'aimerais que chaque doigt détecté ait son propre cercle,
Quelqu'un aurait une idée ?
Merci d'avance,
Bloc de code:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var ui_monLabel: UILabel!
var nbTouchs = 0
var touchViews = [UITouch:UIImageView]()
override func viewDidLoad() {
super.viewDidLoad()
self.view.isUserInteractionEnabled = true
actualiserInterface()
}
// Actualisation Interface
// Centralisation de toutes les mises à jour
// de l'écran dans une seule fonction
// N'existe pas avec SwiftUI, qui s'en charge automatiquement
func actualiserInterface() {
ui_monLabel.text = String(nbTouchs)
}
//
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
nbTouchs += 1
createViewForTouch(touch: touch)
}
actualiserInterface()
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
nbTouchs -= 1
removeViewForTouch(touch: touch)
}
actualiserInterface()
}
//
func createViewForTouch( touch : UITouch ) {
// Création UIImageView
let imageView = UIImageView()
imageView.image = UIImage(systemName: "bolt.circle.fill")
imageView.frame.size = CGSize(width: 100, height: 100)
// On place l'imageView à la position du Touch
imageView.center = touch.location(in: self.view)
// On pose l'imageView sur la surface de travail
self.view.addSubview(imageView)
// Sauvegarde Touch dans le dictionnaire
touchViews[touch] = imageView
}
func removeViewForTouch (touch : UITouch ) {
// Recherche de la vue correspondante au Touch
if let view = touchViews[touch] {
// Destruction de la vue
view.removeFromSuperview()
// On efface la référence de l'évenement Touch
// dans le dictionnaire
touchViews.removeValue(forKey: touch)
}
}
}