"Adjust the force values reported by Apple Pencil so that they are consistent with 3D Touch force values."
압력 값이 3D 터치 압력 값에 일관적일 수 있도록 애플 펜슬에 의해 알려진 압력 값을 조정합니다.
3D 터치 기기에서 사용자의 손가락으로부터 압력은 스크린의 표면에서 수직력으로 측정됩니다. 그러나 애플 펜슬에 의한 압력은 애플 펜슬의 긴 축에 따라 측정됩니다. 이는 보통 스크린에서 수직력이 아닙니다. 애플 펜슬 압력 값을 그대로 사용하는 것 대신 사용자의 손가락 혹은 애플 펜슬로부터 기인하는 터치에 대한 같은 코드를 사용하기 위해 오직 압력의 수직력 부분만을 계산하길 원할 수 있습니다.
Listing 1은 애플 펜슬에 의해 생성된 수직력 압력을 알려주기 위해서 UITouch
클래스에 perpendicularForce
속성 추가 방법을 나타내고 있습니다. 애플 펜슬의 터치의 경우 이 메소드는 펜슬 고도의 사인(삼각함수)로 알려지는 압력 값을 나눕니다. 다른 터치의 경우 기존 압력 값을 알려줍니다.
Listing 1 Getting the perpendicular force from Apple Pencil
extension UITouch {
var perpendicularForce: CGFloat {
if type == .pencil {
return force / sin(altitudeAngle)
} else {
return force
}
}
}