iOS HIG : Drag and Drop

박형석·2021년 11월 4일

iOS HIG

목록 보기
15/19
post-thumbnail

iOS15부터는 앱을 넘나 들며 할 수 있다

드래그 앤 드랍은 컨텐츠를 원래 위치에서 다른 위치로 이동하는 작업이다. 이전에는 단일 앱에서만 해당 작업이 가능했는데 iOS15부터는 두 앱 사이에서도 할 수 있다. 그래서 이제 사파리에서 뉴스를 끌어와 메모에 해당 내용을 저장할 수 있다. 아주 효율적이고 직관적인 기능이기 때문에 필요한 부분에 지원하도록 하자.

1. 선택 및 편집이 가능한 컨텐츠에 사용하자

선택 가능한 컨텐츠는 드래그할 수 있어야 하고 편집 가능한 컨텐츠는 드롭된 컨텐츠를 허용할 수 있어야 한다. 복사, 붙여넣기를 지원하는지 확인하면서 적용해보자.

2. 표준 TextView와 Textfield를 사용하자

기본으로 드래그앤드랍이 지원된다. 아래 지침을 확인해보자.

textview and textfield guideline
https://developer.apple.com/design/human-interface-guidelines/ios/views/text-views/
https://developer.apple.com/design/human-interface-guidelines/ios/controls/text-fields/

3. 다중 항목 드래그 앤 드랍을 지원하자

앱은 보통 한 손가락을 모든 작업을 하게 된다. 이 때 사용자가 일일이 하나하나 옮기는 작업은 불편하다. 여러 개를 선택하고 모두 한번에 이동하는 방식을 지원해보자. 다중 선택 모드 역시 지원이 필요하니 고려하며 디자인하자

4. 이동인지 복사인지 고민하고 디자인하자

일반적으로 이동은 원본과 대상이 같을 때(앱 안에서 이동) 의미가 있고 복사는 다를 때(앱 간의 이동) 의미가 있다. 항상 그런 것은 아니지만 드래그 앤 드랍의 결과는 직관적이어야 한다. 바로바로 보여주자.

5. 취소가 가능하도록 하자

실행 취소 옵션으로 이전 상태로 돌릴 수 있어야 한다. 삭제된 컨텐츠는 제거되어야 하고 다른 곳에서 이동한 경우 원래 위치로 복원해야 한다.

6. spring loading을 사용하자

사용자가 드랍하지 않고 드래그하고 있는 상황에서 다른 control를 사용할 수 있어야 한다. 예를 들어, 메일의 내용을 드래그 한 상황에서 뒤로 가기를 눌러 그곳에다가 붙여넣는 방식 말이다. 스프링 로딩으로만 컨트롤을 활성화하지 않도록 하고 탭 제스처에도 응답하게 하자. 아래 지침을 참조해보자.

UISpringLoadedInteraction
https://developer.apple.com/documentation/uikit/uispringloadedinteraction

결론

위의 내용은 드래그 앤 드랍을 어떻게 지원할 것인가에 대한 문제이고 Drag Content, Drop Content에 대한 내용은 아래 링크에 추가로 있다. 지원할 계획이 있다면 꼭 방문해서 확인 후 디자인해보자. 문서, 게임, 사진 등 다양한 앱에서 사용될 수 있는데 사용자의 사용성을 늘일 생각이라면 적용해보는 것도 좋을 것 같다.

Apple Human Interface Guideline
https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/drag-and-drop/

profile
IOS Developer

0개의 댓글