I am wondering how we could check if the new iOS 10 API UIFeebackGenerator
is available on the current device. There are some more things we would need to check:
The first two checks can be achieved using #available(iOS 10, *)
statement and a (hacky) device-detection, but the latter one doesn't seem to be checkable.
Does someone know a solution for this? Or maybe we need to file an Apple Radar for this one. Thanks!
Simple haptic devices are common in the form of game controllers, joysticks, and steering wheels.
It's like magic. Nope, the button does not move but the haptic motor kind of gives the sensation of it being pressed. I love it over the old home button. Nothing to wear out and it works so well.
How to turn off or on haptic feedback. Please also note that you can change your iPhone's 3D or Haptic Touch sensitivity by going to Settings > Accessibility > Touch, then tap 3D & Haptic Touch (or 3D Touch or Haptic Touch only).
There's some undocumented "private thing":
UIDevice.currentDevice().valueForKey("_feedbackSupportLevel");
it returns 2 for devices with haptic feedback - iPhone 7/7+ so you can easily use this to generate Haptic feedback:
let generator = UIImpactFeedbackGenerator(style: .heavy) generator.prepare() generator.impactOccurred()
returns 1 for iPhone 6S, here's a fallback to generate taptic:
import AudioToolbox AudioServicesPlaySystemSound(1519) // Actuate `Peek` feedback (weak boom) AudioServicesPlaySystemSound(1520) // Actuate `Pop` feedback (strong boom) AudioServicesPlaySystemSound(1521) // Actuate `Nope` feedback (series of three weak booms)
and returns 0 for iPhone 6 or older devices. Since it's kind of undocumented thing it might block you during the review stage, although I was able to pass review and submit the app with such check.
More details: http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With