Haptisches Feedback für iOS mit Swift


Darstellungen auf dem Bildschirm und akustische Signale sind nicht die einzigen Wege, auf denen eine iOS-App mit ihrem Nutzer kommunizieren kann. Ein anderer führt über das, oft ignorierte, haptische Feedback einer Anwendung. Ein iOS-Gerät kann vibrieren und somit dem Anwender zusätzliche Informationen zu seinen Aktionen liefern. Wurde ein Tabellenelement erfolgreich ausgewählt? Wurde eine Schaltfläche tatsächlich betätigt? Bei einem Eingabegerät, das im Grunde nur aus einer Glasscheibe besteht, ist das nicht immer leicht zu beantworten. Hier kann ein haptisches Feedback nützlich sein. Der Anwender bekommt eine unmittelbare Antwort auf seine Aktionen, ohne das störende Elemente auf dem Bildschirm angezeigt werden müssen. Der Nutzer kann »fühlen«, ob seine Aktion von der Software registriert wurde.

Bei der Programmierung mit Swift ist ein haptisches Feedback für iOS-Geräte einfach zu erreichen. Benötigt wird ein Objekt der Klasse UISelectionFeedbackGenerator, bei dem nacheinander die Methoden prepare und selectionChanged aufgerufen werden.

let selectionFeedbackGenerator = UISelectionFeedbackGenerator()

selectionFeedbackGenerator.prepare()

selectionFeedbackGenerator.selectionChanged()

Wie der Name es vermuten lässt, ist diese Methode geeignet, den Anwender über eine erfolgreiche Auswahl aus angebotenen Elemente zu informieren. Zum Beispiel bei bei den Zeilen aus einem Tabellensteuerelement. Die Vibration der Methode ist sehr dezent.

Stärkere Vibrationen liefert die Klasse UINotificationFeedbackGenerator. Hier erfolgt der Aufruf über die Methode notificationOccurred. Sie erwartet als Parameter die Art der Benachrichtigung. Zur Verfügung stehen die Typen error, warning und success, die verschiednen Arten von Vibrationen liefern. Die FeedbackTypen sollten der Situation entsprechend verwendet werden.

let feedbackType : UINotificationFeedbackGenerator.FeedbackType = .error

let notificationFeedbackGenerator = UINotificationFeedbackGenerator()

notificationFeedbackGenerator.prepare()

notificationFeedbackGenerator.notificationOccurred(feedbackType)

Eine weitere Klasse, die ein haptisches Feedback erzeugen kann, ist UIImpactFeedbackGenerator. Laut der Dokumentation von Apple kann diese Klasse verwendet werden, um auf eine Kollision von Objekten hinzuweisen. Das beschränkt den Einsatz auf Spiele. Die Methode impactOccurred startet die Vibration. Ein UIImpactFeedbackGenerator kann zuvor mit verschiedenen Stärken initialisiert werden. Im Angebot stehen light, medium, heavy und ab iOS 13 zusätzlich soft und rigid.

let feedbackStyle : UIImpactFeedbackGenerator.FeedbackStyle = .heavy

let notificationFeedbackGenerator =  UIImpactFeedbackGenerator(style: feedbackStyle)

notificationFeedbackGenerator.prepare()

notificationFeedbackGenerator.impactOccurred()


Geschrieben am: 20.11.2020
Technologien: Swift, iOS