3d Touch недоступно на iPhone 6s+

Я пытаюсь добавить 3D Touch в свое приложение. Я пытаюсь разрешить пользователю использовать принудительное прикосновение к UITableViewCell, как показано в этом проекте. Я бегу этот код:

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

Я попытался запустить его на iPhone 6s+, но я получаю "недоступно" в моих журналах. Почему я не могу использовать 3D Touch на устройстве с поддержкой 3D Touch? Спасибо за вашу помощь.

1 ответ

Решение

Только что нашел ссылку на API 3D Touch: согласно документации по API 3D Touch, Apple предложила разработчикам прочитать forceTouchCapability в traitCollectionDidChange: метод делегата.

Например, вы можете проверить значение в вашем контроллере вида, используя:

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

Надеюсь, поможет.

Другие вопросы по тегам