두 개의 분리 된보기 컨트롤러가 필요하다고 생각하지 않습니다. 귀하가 UIViewController
에 약간 UIScrollView
을 맞춤 설정하기 만하면됩니다.
먼저 scrollView 의ContentSize를 설정해야합니다. 그런 다음 스크롤하려는 것을 원하지 않으므로 UIScrollView
을 스크롤하지 못하게해야합니다.
self.scrollView =[[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.scrollView.delegate = self;
self.scrollView.contentSize = CGSizeMake(320, 568 + x ); // x represents the height of white screen in your first view controller.
self.scrollView.bounces = NO;
self.scrollView.scrollEnabled = NO;
둘째, 당신이 필요합니다 당신의 UIView
에 UITapGestureRecognizer
화면에 완전히 표시 할 추가 할 수 있습니다. 다음 코드 조각은 당신이 당신의 UIScrollView
의 contentOffset
을 변경하여 화면에 UIView
완전히 새로운를 표시하기 위해 마지막으로, tapped
방법을 구현할 수
UITapGestureRecognizer *tapGestureRecognizer =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(tapped:)];
tapGestureRecognizer.numberOfTapsRequired = 1;
[view addGestureRecognizer:tapGestureRecognizer];
를 사용할 수 있습니다. 탐색 바가 사라지는 것을 잊지 마십시오. 따라서
- (void)tapped{
self.navigationController.navigationBarHidden = YES;
[self.scrollView setContentOffset:CGPointMake(0,view1.frame.origin.y) animated:YES];
}
마지막으로, 두 번째보기를 화면에 완전히 표시합니다. 나는 당신이 iPhone> 5를 사용한다고 가정하고 정적 인 값을 사용했지만, 실행중인 장치에 따라 높이의 동적 인 값을 사용할 수 있습니다. 두 번째보기에서 setUserInteractionEnabled
을 잊지 마세요.
내 실수로 네비게이션 바가 좋지만 큰 문제는 아니 겠지만 그냥 setContentOffset 값을 변경하고 navigationBarHidden
속성을 사용하지 않아야한다고 생각합니다.
이전보기에서 상호 작용을 잃었을뿐 아니라 iPad에서 팝업 표시 이외의 항목과의 상호 작용을 잃을 수 있으므로 모달보기가 될 수 없습니다.보기 컨트롤러는 전체 화면입니다. 동일한 뷰 컨트롤러에 하위 UIView를 만드는 것을 고려하십시오. 동작을 제어하려면 제스처 인식기를 사용하십시오. –