Please give information about how much sensitivity have the 3D touch ? I mean how much pressure it can detect buy the area in pascal (unit) or other units ? What isthe minimum and maximum of the pressure that device can detect ? how small can be the area of detection ?
Replies
From the WWDC talks and from the docs, it appears that only minimum or short and maximum, long
press are available. I could be really wrong on this so don't take my comments as gospel but from
every doc I've read the 3D Touch is not as fine grained as specific Pascal units.
The
UITouch
class has two new properties to support custom implementation of 3D Touch in your app: force
and maximumPossibleForce
. These properties let you detect and respond to touch pressure in the UIEvent
objects your app receives. The force of a touch has a high dynamic range, available to your app as a floating point value (CGFloat), where a value of 1.0
represents the force of an average touch (predetermined by the system, not user-specific).-Max
Yes, you can detect the amount of force applied by the user.
Full documentation on the 3D Touch API, both from the gesture support layer and when pressure values are accessed directly is available here:
I have just run a simple test on my 6S Plus and the sensitivity is higher than I expected. The maximum value is 6.67 (for some reason) and it seems to show dozens of discrete values between 0.0 and that maximum.
Peek and Pop meant that I was only expecting three different values (maybe 0.0, 1.0 and 2.0), but it is much more granular than that.
While it seems clear we can detect many levels of pressure, these are constrained due to
run loop issues. In reality, there is little difference between a strong force touch and a long
press. Seems to me, that with the timing constraints, this places an additional burden on
our apps instead of opening new options. Now we must determine not only duration but
also pressure and fire our responses accordingly. What happens when a tap or a double
tap is hard enough to trigger that threshhold?