В iOS8 вы можете получить доступ к свойству touch.majorRadius
, которое равно CGFloat
, увеличивается в 10,45 и пропорционально радиусу области касания в миллиметрах.touch.majorRadiusTolerance - это второе свойство, которое может использоваться с iOS8 и дает точность информации о радиусе касания.В моих измерениях он всегда составлял половину шага majorRadius
.
На iPad Pro сенсорный экран в три раза более чувствителен и воспринимает слабый сигнал от карандаша Apple, который ниже порога отчетности для более старыхмодели iPad.Радиус касания карандаша равен 0,25, а даже малейший контакт с пальцем - 20,84 или более.
Используйте его следующим образом в методе UIView:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// Regular multitouch handling.
[super touchesBegan:touches withEvent:event];
CGPoint center = [touch locationInView:self];
NSLog(@"Touch detected at %6.1f | %6.1f", center.x, center.y);
CGFloat radius = [touch majorRadius];
NSLog(@"Radius = %5.1f; lower limit = %5.1f; upper limit = %5.1f", radius, radius-touch.majorRadiusTolerance, radius+touch.majorRadiusTolerance);
}