2017-10-13 4 views
4

So erfahre ich Absturz in UItextview, während Benutzer dort mit URL-Link interagiert. Alle Absturzberichte haben nur iOS Version 11. Das sieht aus wie bekannte Fehler in iOS 9, aber es gibt keinen einzigen Bericht iOS Versionen niedriger als 11 ist, und auch in Bericht fand ich interessant Linie:UITextView startInteractionWithLinkAtPoint Absturz iOS 11 nur

UITextGestureClusterLinkInteract smallDelayRecognizer: 

, die mit iOS kamen 11 (http://developer.limneos.net/?ios=11.0&framework=UIKit.framework&header=UITextGestureClusterLinkInteract.h). Wie auch immer, für jetzt behoben ich es mit

@available(iOS 10.0, *) 
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { 
    UIApplication.shared.openURL(URL) 
    return false 
} 

, die nicht so cool ist, weil Sie Aktion Blatt Menü verlieren. Meine Annahme war, dass es durch 3D-Touch (wie durch langes Drücken in früheren Versionen) verursacht wird, aber wenn ich 3D-Touch (75% oder sogar 50% der maximalen Kraft) erkenne und die Link-Interaktion für dieses spezielle Gesten-Problem immer noch deaktiviere erscheint. Hat jemand Erfahrung mit diesem speziellen Problem und mehr Eleganz Weg, es zu lösen?

+0

Gleiches Problem hier. Wenn Sie es gelöst haben, informieren Sie mich bitte –

Antwort

0

Ich habe dieses Problem erlebt und gelöst.

Dies ist eine Problemumgehung in meinem Produktionscode. Deaktivieren Sie die Interaktion .preview Zustand wegen Abstürzen nur dieser Zustand auftritt.

func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { 
    switch interaction { 
    case .presentActions, .invokeDefaultAction: 
     return handleLinkURL(url: URL) 
    case .preview: 
     return false 
    } 
} 
Verwandte Themen