비디오: 갤럭시 스마트폰 유용한기능 모션 제스처 자동 설정 기능 2024
iOS 사용자 경험과 앱과의 관계를 진정으로 이해하려면 제스처의 중요성을 이해해야합니다. UIKit에는 앱에서 사용할 수있는 제스처 인식기가 포함되어 있습니다. UIKit을 사용하여 기본보기에 제스처 인식기를 추가하여 사용자가 왼쪽으로 스 와이프하여 테스트 드라이브보기를 표시하도록 할 수 있습니다.
iPhone 및 iPad 모두에서 제스처 인식기를 추가하기가 쉽습니다. MasterViewControlle에서. m, 굵게 표시된 코드를 viewDidLoad에 추가하십시오.
- (무효) viewDidLoad {[super viewDidLoad]; AppDelegate * appDelegate = [[UIApplication sharedApplication] delegate]; 본인. title = appDelegate. 여행. destinationName; UIImageView * imageView = [[UIImageView alloc] initWithImage: [appDelegate. 여행 목적지 이미지]]; 본인. tableView. backgroundView = imageView; _detailViewController = (DetailViewController *) [[자기. splitViewController. viewControllers lastObject] topViewController]; UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: self action: @selector (handleSwipeGesture:)]; swipeGesture. direction = UISwipeGestureRecognizerDirectionLeft;
UISwipeGestureRecognizer는 UIGestureRecognizer의 하위 클래스로, 구체적인 제스처 인식기 클래스의 추상 기본 클래스입니다. 제스처 인식기는 특정 제스처를 인식하는 데 열심히 노력한 다음 지정한 대상 (사용자가 지정한 동작 메시지)을 보내어 작업을 수행합니다.
UISwipeGestureRecognizer 외에도
-
Tap: UITapGestureRecognizer
-
Pinch: UIPinchGestureRecognizer
-
회전: UIRotationGestureRecognizer
-
팬에 대한 제스처 인식기가 있습니다.: UIPanGestureRecognizer
-
길게 누르기: UILongPressGestureRecognizer
히트 테스트를 거친보기 (사용자가 터치 한 것으로 판단한보기)로 제스처 인식기에 전달하기 전에 터치 이벤트를 제스처 인식기에 전달합니다.. (제스처 인식기는 뷰에 첨부되며 응답 체인의 일부가 아닙니다.) 일반적으로 제스처 인식기가 제스처를 인식하지 못하면 터치가 뷰로 전달됩니다. 제스처 인식기가 제스처를 인식하면보기에 대한 나머지 터치가 취소됩니다. UISwipeGestureRecognizer는 하나 이상의 방향으로 스 와이프 동작을 찾는 UIGestureRecognizer의 구체적인 하위 클래스입니다. 스 와이프는 별도의 제스처이므로 동작 메시지는 제스처 당 한 번만 전송됩니다.
UISsipeGestureRecognizer는 지정한 수의 터치 (numberOfTouchesRequired)가 대부분 스 와이프로 간주 될만큼 충분히 허용되는 방향 (방향)으로 움직 였을 때 제스추어를 스 와이프로 인식합니다.
UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: self
action]의 수 (기본값은 1)와 방향 (기본값은 오른쪽)에 대해 UISwipe GestureRecognizer 인식기를 구성 할 수 있습니다.: @selector (handleSwipeGesture:)];
여기에서는 self라는 타겟과 handleSwipeGesture:의 액션으로 스 와이프 제스처를 생성합니다. 즉, 제스처 인식자가 스 와이프라고 판단하면 handleSwipeGesture:를 MasterViewController (이 경우 자체)로 보냅니다.다음으로 사용자가 테스트 드라이브보기를 표시하기 위해 왼쪽으로 스 와이프해야하기 때문에
swipeGesture와 같이 기본값을 왼쪽에서 오른쪽으로 설정합니다. direction = UISwipeGestureRecognizerDirectionLeft;
스 와이프가 발생할 때 스 와이프 인 효과 프로그램을 처리하기 위해 응답을 보내려면 코드를 MasterViewController에 추가하십시오. 엠.
여기서 이야기하는 것은
번들
에서 스토리 보드를 찾는 것입니다. iOS (및 OS X)에서 번들은 단일 파일처럼 보이며 실행 가능한 코드, 리소스 등을 포함하는 디렉토리입니다 이미지 및 사운드, 펜촉 (스토리 보드) 파일로 제공됩니다. UIStoryboard * 스토리 보드 = [UIStoryboard 스토리 보드 이름: @ "Main_iPad"& # x2029; 번들: nil]; 그러면 코드가 TestDriveController를 만듭니다. 이것은 스토리 보드가 테스트 드라이브 버튼을 탭할 때 (세그 로직에서)하는 것과 같습니다:
UIViewController * viewController = [storyboard instantiateViewControllerWithIdentifier: @ "TestDrive"];
식별자가 필요한 곳은 다음과 같습니다. 스토리 보드에서 구성한보기 컨트롤러를 찾을 수있는 유일한 방법입니다.
다음에는 네비게이션 컨트롤러에 View 컨트롤러를 스택으로 밀어 넣으라고 지시합니다 (이 방법은 네비게이션 바를 업데이트 함). (애니메이션 매개 변수가 YES이면 뷰는 애니메이션 위치에 배치되고, 그렇지 않으면 뷰가 그대로 자리 표시됩니다.)
[[self navigationController] pushViewController: viewController animated: YES];
이것은 스토리 보드에서 생성 된 segue 로직에서 여러분을 위해 완료되었을 것입니다.
마스터보기 컨트롤러에만 스 와이프 동작을 설치했습니다. 테스트 드라이브보기에있는 경우 뒤로 (뉴욕) 버튼을 사용하여 만 되돌릴 수 있습니다. 인터페이스를 설계 할 때 일관성과 대칭성이 좋은 특징입니다. 스 와이프하여보기로 이동하면보기 밖으로 스 와이프해야합니다. 이것이 강력하고 직관적이며 배우기 쉬운 인터페이스를 구축하는 방법입니다.