"Manipulate your content based on the force of touches."
터치의 압력에 기반해 컨텐트를 조작합니다.
스크린에 대한 터치는 해당 터치의 위치를 전달합니다. 그러나 3D 터치를 지원하는 기기는 스크린에서 사용자의 손가락으로 전달되는 압력의 크기 또한 알려줍니다. (유사하게 애플 펜슬은 연결된 기기에 압력의 크기를 전달합니다.) 앱에 대한 입력으로 터치 위치와 압력 값 모두를 사용할 수 있습니다. 예를 들어 드로잉 앱은 현재 선의 두께를 설정하기 위해 압력을 사용할 것입니다.
Figure 1 Using force as input
터치에 관련된 가공되지 않은 압력 값은 UITouch
객체의 압력 속성에서 사용이 가능합니다. 압력의 상대적 크기를 결정하기 위해 해당 값과 maximumPossibleForce
속성에서의 값을 비교할 수 있습니다.
Important
앱이 peek-and-pop 지원을 구현하고 있다면, 앱에서 가공되지 않은 압력 값을 사용하지 않아야 합니다.UIKit
peek-and-pop API를 지원하기 위해 3D 터치를 사용하는 것에 대한 정보는 Adopting 3D Touch on iPhone을 살펴보시기 바랍니다.
Adopting 3D Touch on iPhone
https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/Adopting3DTouchOniPhone/index.html#//apple_ref/doc/uid/TP40016543
3D 터치 사용에 대한 가이드는 iOS Human Interface Guide를 살펴보시기 바랍니다.
iOS Human Interface Guide
https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/
기능을 사용할 수 있도록 하기 전에 기기가 3D 터치를 지원하는지 여부를 확인합니다.
https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/tracking_the_force_of_3d_touch_events/checking_the_availability_of_3d_touch
https://velog.io/@panther222128/Checking-the-Availability-of-3D-Touch
뷰의 컨텐트에 터치 처리가 복잡하게 연결되어 있는 경우 뷰 서브클래스에서 직접 터치 이벤트를 사용합니다.
https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/handling_touches_in_your_view
https://velog.io/@panther222128/Handling-Touches-in-Your-View
애플 펜슬로부터 발생한 터치를 감지하고 이에 응답하는 방법을 알아봅니다.
https://developer.apple.com/documentation/uikit/pencil_interactions/handling_input_from_apple_pencil
https://velog.io/@panther222128/Handling-Input-from-Apple-Pencil
화면에서 발생하는 터치의 위치, 크기, 움직음, 압력을 나타내는 객체입니다.
https://developer.apple.com/documentation/uikit/uitouch
https://velog.io/@panther222128/UITouch