假设3D touch报告准确的压力,那么可以执行以下操作:
如果我们还有finger_area0 []和finger_area1 [](按下时),那么:
weight_object ~= Sum(finger_area1*p1)-Sum(finger_area0*p0)-weight_iphone
可能有很多实现细节(对于一个简单的愚蠢规模......)
但首先,iPhone 6s是否提供
答案 0 :(得分:2)
您需要的属性可在UITouch
上找到:
force // iOS9/6S
maximumPossibleForce // iOS9/6S
majorRadius // iOS8
majorRadiusTolerance // iOS8
您可以通过覆盖以下UIResponder
方法来检查它们:
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
答案 1 :(得分:2)
实际上这是可能的,尽管它有其局限性。 iPhone 6s Plus可以测量0到400克之间的重量。我已经写了一个小应用程序,用于娱乐,将iPhone 6s变成厨房秤;-)我制作了一个小视频:https://youtu.be/mzuJOWDI6tE
从UITouch对象获得的“force”值的范围为0到6.66667,并且表示0到400克之间的权重。看起来这个范围内的值非常线性,因此很容易将原始值转换为实际重量。
但当然这只是一个有趣的项目,因为当屏幕检测到触摸时你只获得“强制”值,并且触摸屏无法检测到许多物体(塑料,木头等)。