2016-04-23 8 views
3

Ich versuche, 3d Touch in meine Anwendung hinzuzufügen. Ich versuche, den Benutzer zu ermöglichen, Force Touch auf einem UITableViewCell zu verwenden, wie in this project gezeigt. Ich verwende diesen Code:3D Touch Nicht verfügbar auf iPhone 6s +

if traitCollection.forceTouchCapability == UIForceTouchCapability.Available { 
    registerForPreviewingWithDelegate(self, sourceView: view) 
} else { 
    print("unavailable") 
} 

Ich habe versucht, es auf einem iPhone 6s laufen +, aber ich erhalte „nicht verfügbar“ in meinem Logs. Warum kann ich 3d Touch nicht auf einem 3D-Touch-unterstützten Gerät verwenden? Danke für Ihre Hilfe.

+0

Wann haben Sie den Code ausgeführt? bei 'viewDidLoad' oder woanders/ –

+0

Ja, ich habe das in viewDidLoad – penatheboss

+0

ausgeführt. Würden Sie gerne überprüfen, ob 3D Touch auf Ihrem Gerät aktiviert ist? gehe zu Einstellungen> Allgemein> Eingabehilfen> 3D Touch –

Antwort

4

Nur eine Referenz über 3D-Touch-APIs gefunden: laut der 3D Touch APIs Dokumentation, schlug Apple, dass Entwickler forceTouchCapability in traitCollectionDidChange: Delegate-Methode zu lesen.

Zum Beispiel können Sie den Wert in Ihrem View-Controller prüfen mit:

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) { 
    super.traitCollectionDidChange(previousTraitCollection) 
    switch traitCollection.forceTouchCapability { 
    case .Available: 
     print("Available") 
    case .Unavailable: 
     print("Unavailable") 
    case .Unknown: 
     print("Unknown") 
    } 
} 

Hoffe, es hilft.

Verwandte Themen