Einige iPhones sind mit einem Gerät namens Taptic Engine ausgestattet. Dies ist ein Gerät, das das Gefühl erzeugt, die Home-Taste zu drücken, anstatt eine physische Taste zu sein. Ein Klickgefühl tritt auf, wenn Sie etwas anderes als die Home-Taste gedrückt halten oder wenn die Zahlung abgeschlossen ist.
Ich habe versucht, diese Taptic Engine mit einer App namens Pyto zu betreiben.
iPhone SE (2020)(iOS13.4.1) Pyto(11.9)
Ich verstehe, dass Taptic Engine ein Gerät ist, das ein Klickgefühl erzeugt, und dieses Klickgefühl wird als haptisches Feedback bezeichnet.
Es gibt drei Arten von haptischem Feedback auf dem iPhone. Hier Ich habe auf die Website von [1] verwiesen. Hier Es wird auch auf der Website [2] ausführlich beschrieben.
Art | Funktion |
---|---|
UIImpactFeedbackGenerator | Einmal reagieren. Es können 3 Stärkestufen ausgewählt werden |
UISelectionFeedbackGenerator | Zur Auswahl der Benutzeroberfläche. Die schwächste Reaktion |
UINotificationFeedbackGenerator | Zur Benachrichtigung über Erfolg oder Misserfolg. Es gibt drei Arten |
Sie können UIKit mit Pyto verwenden. Dies ist eine Funktion, mit der Sie Objective-C berühren können, z. B. "objc_util" in Pythonista. Tatsächlich handelt es sich um eine Bibliothek namens "rubicon-objc", und es scheint, dass dies zur Bedienung von Objective-C verwendet wird. Pyto UIKit-Quellcode
Es scheint, dass Sie die Verzögerung minimieren können, indem Sie vor dem Aufruf prepare ()
setzen, dies ist jedoch optional. So wie ich es ausprobiert habe, konnte ich den Unterschied mit oder ohne nicht erkennen. Dokumentation vorbereiten
UIImpactFeedbackGenerator
Sie können die Stärke in 3 Schritten einstellen. 0 ist die schwächste.
import UIKit
generator = UIKit.UIImpactFeedbackGenerator.alloc().init()
generator.prepare()
power = 0 # 0~3 Stufen von 2
generator.initWithStyle(power) #Stärke einstellen
generator.impactOccurred() #aktivieren Sie
UISelectionFeedbackGenerator Die Stärke kann nicht eingestellt werden.
import UIKit
generator = UIKit.UISelectionFeedbackGenerator.alloc().init()
generator.prepare()
generator.selectionChanged() #aktivieren Sie
UINotificationFeedbackGenerator Sie können aus 3 Arten von Reaktionen wählen. Erfolg (Tonne ** Tonne ) = 0, Warnung ( Tonne Tonne ) = 1, Fehler ( tocoton **) = 2.
import UIKit
generator = UIKit.UINotificationFeedbackGenerator.alloc().init()
generator.prepare()
mode = 0 # 0~3 Arten von 2.
generator.notificationOccurred(mode) #aktivieren Sie
Dies ist ein Code, der alle Stärken der oben genannten drei Typen gleichzeitig testet.
import UIKit
import time
generator = UIKit.UIImpactFeedbackGenerator.alloc().init()
generator2 = UIKit.UISelectionFeedbackGenerator.alloc().init()
generator3 = UIKit.UINotificationFeedbackGenerator.alloc().init()
print("impact start")
generator.prepare()
for i in range(3):
print(f"-{i}")
for j in range(3):
generator.initWithStyle(i)
generator.impactOccurred()
time.sleep(0.3)
print("finished")
time.sleep(1)
print("selection start")
generator2.prepare()
for i in range(10):
generator2.selectionChanged()
time.sleep(0.1)
print("finished")
time.sleep(1)
print("notification start")
generator3.prepare()
for i in range(3):
print(f"-{i}")
generator3.notificationOccurred(i)
time.sleep(1)
print("finished")
Es dauerte einige Zeit, bis mir klar wurde, dass ich .alloc (). Init ()
schreiben sollte.
[1] https://qiita.com/WorldDownTown/items/2b5a72e41a95763727bb (Verwendung von UIFeedbackGenerator und einer praktischen Bibliothek) [2] https://note.com/tdksk/n/nb4498e59dcad (Effektive Mikrointeraktion mit haptischem Feedback in der iPhone-App) [3] https://qiita.com/griffin_stewie/items/298f57ca3f1714ebe45c (Ich habe das iPhone 7 erhalten und habe sofort die Taptic Engine-API ausprobiert.) [4] https://developer.apple.com/documentation/uikit/uifeedbackgenerator?language=objc#2555399 (UIFeedbackGenerator) [5] https://rubicon-objc.readthedocs.io/en/latest/tutorial/tutorial-2.html (Rubicon Tutorial 2)
Recommended Posts