Table of Contents
iOS 앱의 Gesture 기반 Navigation System 설계
Gesture 기반 탐색은 현대 iOS 앱 디자인의 코너스톤이되었으며, 거의 물리적 인 느낌을주는 유체, 직관적 인 상호 작용을 가능하게합니다. 눈에 보이는 버튼과 메뉴에 대한 신뢰성을 감소함으로써, 제스처는 스크린 부동산을 자유롭게 만들고 더 몰입적인 사용자 경험을 만듭니다. Apple의 UIKit는 제스처 인식기의 강력한 세트를 제공하지만 효과적인 탐색 시스템을 설계하여 생각나는 계획을 필요로하며, 인간 인터페이스 가이드라인의 이해 및 엄격한 테스트가 필요합니다. 이 기사는 기술, 접근 가능한 시스템 및 접근 가능한 탐색 시스템을 탐구하는 방법을 탐구합니다.
왜 Gesture 기반 탐색 매트
이 웹 사이트는 애플 리케이션에 전념. 우리는 정품 앱과 게임을 제공 할 목적으로이 사이트를 만들었습니다. 4AppsApk 최고의 안드로이드 애플 리케이션을위한 무료 APK 파일 다운로드 서비스, 계략.
iOS 탐색에서 핵심 Gestures
Apple의 Human Interface Guidelines(HIG)는 사용자가 앱 전체에 걸쳐 일관되게 작동할 것으로 예상되는 표준 제스처를 정의합니다. 이러한 익숙한 상호 작용을 활용하면 사용자는 집에서 느낄 수 있습니다.
뚱 베어
swipe gesture는 아마도 가장 다양한 탐색을 제공합니다. 왼쪽 또는 오른쪽으로 스와핑하면 (예 : 사진 갤러리에서), 사이드 바 메뉴 (많은 탐색 기반 앱의 왼쪽 가장자리에서 황새)를 표시하거나, 화면을 떼어 (UINavigationController에서 뒤로)를 뺀다. 방향은 종종 스크롤하거나 변조를 거부하는 데 사용됩니다.
팟캐스트
간단한 탭은 선택의 기초입니다. 탐색 컨텍스트에서, 탭은 계층 (예를 들어, 테이블보기에서 행을 태핑) 또는 하단 시트를 열고 같은 작업을 트리거 할 수 있습니다. 더블 탭은 네비게이션에 덜 일반적이지만 내용에 줌 할 수 있습니다.
핑크
Pinch gestures는 주로 지도, 이미지 및 문서에 확대를 위해 사용됩니다. 항법에서는, pinch는 개요와 세부사항 형태 (예를들면, 격자 보기에 확대) 사이에서 toggle 할 수 있습니다.
긴 압박
긴 압박 (또는 이전 장치에 힘 접촉)는 멀리 항해 없이 맥락한 맥락한 메뉴, 시사, 또는 더 빠른 활동을 계시합니다. 예를 들면, 긴 압박 메시지 시사는 가득 차있는 대화를 열기 없이 대답 선택권을 보여줄 수 있습니다.
엣지 스위프
화면 가장자리에서 수영 (왼쪽 가장자리가 돌아 가기, iPad에서 덮는 오른쪽 가장자리)는 앱이 그것을 무시하는 강한 이유가없는 것을 존중하는 시스템 수준 제스처입니다. 사용자가 혼란을 방지하기 위해 시스템 제스처와 충돌을 피하십시오.
Gesture 기반 탐색을 위한 설계 원칙
성공적인 제스처 탐색은 인식자가 부착하는 것은 아니라 현실적인 디자인 접근을 필요로 합니다.
의 특징
Gestures는 보이지 않는 것입니다. 사용자는 가르침이나 직관적으로 이해해야합니다. 시각적 인 힌트 (예 : 미묘한 화살표, 드래그 인디케이터 또는 첫 출시에 튜토리얼 오버레이)를 사용하십시오. 지속적인 패턴 - 항상 뒤로 갈 때 찢어지기 쉬운 사용자가 빠르게 배울 수 있습니다.
관련 제품
플랫폼의 규칙을 따르십시오. 사용자는 항법 더미에서 “go back”를 의미하기 위하여 적당한 swipe를 예상합니다. 당신이 무언가를 위해 적당한 swipe를 사용하는 경우에, 명확한 상황에 제공합니다. 당신의 앱 안에, 스크린의 맞은편에 gestures 제복을 지킵니다.
의논하기
모든 제스처는 즉각적인 명확한 피드백을 제공해야합니다. 시각적 피드백 (제스처와 함께보기를 안함), 낙관적 피드백 (UIImpactFeedbackGenerator 또는 UINotificationFeedbackGenerator) 및 오디오 큐 (이렇게)는 제스처가 인식된다는 것을 확인합니다. 피드백없이 사용자는 반복적으로 좌절 경험을 만들 수 있습니다.
관련 상품
모든 사용자는 정밀도로 제스처를 수행 할 수 없습니다. 탐색을위한 대안 방법을 제공합니다 : 버튼, 키보드 단축키 (아이폰과 키보드에), VoiceOver 사용자 정의 행동 및 스위치 제어 지원. 제스처는 중요한 작업을 수행하는 유일한 방법이 아닙니다.
분쟁해결
여러 제스처 인식자가 동일한 보기(또는 부모 보기)에 부착되면, 분쟁은 발생할 수 있습니다. 예를 들어, 카드를 해치하기 위해 스 와프는 카드 안쪽에 스크롤하기 위해 스 와프와 충돌할 수 있습니다. ]와 같은 delegate 메소드를 사용하여 제스처를 우선적으로 사용하거나 제스처 인식자 의존성을 설정하십시오.
의 특징
Gesture 취급은 유체가 있어야 합니다. 무거운 애니메이션이나 동기식 계산은 지연이나 스터에 제스처를 일으킬 수 있습니다. 를 사용하며 표준 패닝을 위한 내장 제스처 인식기; 사용자 정의 제스처를 위해 핸들러 방법을 경량화하고 ]를 사용하여 고려하십시오. 부드러운 애니메이션.
iOS에서 Gesture Recognizer 구현
iOS는 ]]에서 콘크리트 제스처 인식기를 설정한다. 일반적인 내비게이션 패턴을 구현하는 방법은 다음과 같다.
기본 설정
gesture cognir를 즉시 설정하고 대상과 행동을 설정하고 속성 (direction, 탭 수 등)을 구성하고,보기에 첨부합니다. swipe 탐색을 위한 예 :
let swipeBack = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipeBack))
swipeBack.direction = .right
view.addGestureRecognizer(swipeBack)
고급 구성
더 많은 과립 제어를 위해, delegate 프로토콜을 사용합니다. 예를 들어, 사용자가 손가락이 왼쪽 가장자리 (뒤에 엣지 스위프) 근처에 시작될 때 스위프 제스처를 허용하기 위해 :
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
guard let swipe = gestureRecognizer as? UISwipeGestureRecognizer else { return false }
let location = swipe.location(in: view)
return location.x < 30
}
심볼의 Gesture 취급
스크롤 조회 또는 수집 레이아웃이 참여할 때, 함께 일하는 제스처를 허용해야 할 수 있습니다. ]를 사용하여 ]] 호환 제스처에 대한, 를 반환합니다.
회사 소개
완전히 제스처 구동 네비게이션을 위해, 사용자 정의 뷰 컨트롤러 전환과 쌍 제스처 인식기를 설정합니다. 예를 들어, 사용자의 손가락을 따르는 대화형 팝업을 구현하고 기본 iOS 백 제스처와 유사합니다. 이것은 를 사용하고 탐색 컨트롤러의 delegate에서 팬 또는 스윗 제스처에 연결합니다.
Gestures (Example)와 메뉴 탐색 설계
많은 현대 iOS 앱은 왼쪽에서 슬라이드하는 햄버거 메뉴를 사용합니다. 제스처 기반 대안은 사이드 패널 (iPad의 분할보기와 같은)을 공개하기 위해 swipe-from-edge가 될 수 있습니다. 이를 구축하려면 :
- 메인 콘텐츠로 바로 가기(엣지: .left)
- 제스처에서 메뉴를 왼쪽으로 덮어 놓고, x 위치가 비례적으로 업데이트합니다. 결국, 속도/위치에 따라 완전히 열거나 닫히는 것을 알기 때문입니다.
- swipe 할 수없는 사용자를위한 버튼을 제공합니다.
- ] 대화형 애니메이션을 사용하여 중간 제스처를 반전 할 수 있습니다.
이 패턴은 하단 시트, 오른쪽 패널 또는 스 와이프 탭으로 확장 될 수 있습니다.
Gesture Navigation을 위한 테스트 및 정의
Thorough 테스트는 비 양도할 수 있습니다. Gesture 인식자는 분할 화면과 다른 장치에서 예기치 않게 행동하거나 시스템 제스처 (예를들면, 홈 인디케이터, 앱 스위처)가 참여할 수 있습니다.
도구 및 방법
- Xcode Debugger:] View debugging Pane를 사용하여 gesturecognir states(possible, started, changes, end, cancel, failed)를 시각화합니다.
- 액세스 검사기:]각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각각
- User Testing: 은 실제 사용자가 제스처를 수행하는 관찰; 주의 hesitation, 실수 방아쇠, 또는 반복 된 시도.
- Performance Monitoring: Core Animation Instrument를 사용하여 제스처 실행 중에 프레임 속도를 확인합니다.
일반 Pitfalls
- 사고 트리거: 사용자가 행을 선택하려고 할 때 다시 돌아가는 스 와프는 잘못 될 수 있습니다. 최소 드래그 거리 또는 특정 시작 가장자리를 필요로하여 미티게이트.
- 시스템 Gesture Conflicts: 페이스 ID를 가진 아이폰에, 홈 인디케이터 swipe는 하단의 제스처와 충돌 할 수 있습니다. ] 속성을 사용하여 제스처를 먼저 허용하지만 항상 가을을 제공합니다.
- Poor Discoverability: 사용자가 제스처가 존재하지 않는 경우, 그들은 갇혀질 것입니다. 온보드, 지속적 인 연인, 또는 타임아웃 후 버튼을 표시하는 적응 UI를 사용합니다.
접근성 및 Inclusive 디자인
Gesture 기반 탐색은 모터 장애를 가진 사용자를 제외하지 않아야합니다. 이러한 관행을 따르십시오.
- Alternative Controls: 모든 제스처 트리거 작업은 버튼 또는 키보드 단축키를 통해 사용할 수 있어야 합니다. 예를 들어, 스 와이프-에-데레는 삭제 버튼을 보여주는 긴 압박일 수도 있습니다.
- VoiceOver: ]] 를 사용하여 gesture 작업을 이름을 붙인다. 예를 들어, “Swipe back” 로터에서 사용자 정의 동작이 될 수 있다.
- Reduce Motion: ] 설정; 요청할 때 간단한 퇴색 전환으로 parallax 또는 슬라이드 인 메뉴를 대체합니다.
- Touch Accommodations: gesture behavior를 수정하는 AssistiveTouch 및 Touch Accommodations의 마음을 담아 터치 포인트가 정확하다고 가정합니다.
관련 기사
iOS 앱의 제스처 기반 네비게이션 시스템은 매력적인 현대 사용자 인터페이스를 만드는 강력한 방법입니다. 제스처 인식기의 기본을 이해함으로써 Apple의 디자인 원칙에 부합하고, 액세스성을 우선적으로 구현하는 데 필요한 접근 방식을 이해함으로써 자연과 노력이 없는 네비게이션을 구축할 수 있습니다. 시스템 표준 제스처로 시작하면, 사용자의 경험을 더욱 향상시키고, 항상 다양한 사용자 기반을 테스트할 수 있습니다. 제대로 수행되면 제스처는 사용자의 콘텐츠를 배경으로 사라지게 하게 됩니다.
더 읽기를 위해 Apple의 ]인간 인터페이스 가이드라인 Gestures], ]UIKit Gesture Recognizer documentation], 그리고 우수한 기사 “]WDC 2018에서 유체 인터랙션]를 설계합니다. 액세스 모범 사례를 보려면 ] 액세스 권한을 참조하십시오. ]HFLT:7] 액세스 권한:]].