전환 후 제약 조건을 적용하는 iOS 8 UIPageViewController
내 앱에는 사용자가 앱에 대해 알아보기 위해 스 와이프하는 다중 창 자습서 스타일보기가 있습니다. 이것은 이 튜토리얼에서 설명한대로 매우 많이 구현 됩니다. iOS 7과 8 모두에 대해 구현 한 후 작동 방식을 비교하고 후자의 문제를 찾고 있습니다. 여기서 Xcode 6 GM을 실행하고 있습니다.
전환이 완료된 후 UIPageViewController가 뷰를 렌더링하는 것 같습니다. 무슨 일이 일어나는지보기 위해 델리게이트 메서드를 덮어 썼습니다.
- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers
{
NSLog(@"Frame size before: %@", NSStringFromCGRect([(UIViewController*)pendingViewControllers[0] view].frame));
}
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
NSLog(@"Frame size after: %@", NSStringFromCGRect([(UIViewController*)previousViewControllers[0] view].frame));
}
다음은 샘플 출력입니다.
Frame size before: {{0, 0}, {600, 600}}
Frame size after: {{0, 0}, {320, 568}}
이는 다음과 같이 나타납니다. 왼쪽으로 스 와이프하여 다음보기를 가져오고 새보기의 하단에 32pt 공백을 확인합니다. 전환이 완료되면 적절한 레이아웃으로 이동합니다.
이것은 아마도 iOS 8의 버그입니까? 이 시점에서 나는 모두 추측이 불가능합니다.
뷰 컨트롤러의 레이아웃 가이드가 아닌 뷰에 제약을 두어야한다는 것을 알아 냈습니다. 이렇게하면 뷰 컨트롤러가 PageViewController에서 전환하기 전에 설정 한 제약 조건을 준수합니다.
다음과 같이 할 수 있습니다.

"여백에 제한"을 선택 취소해야합니다.
이 문제가있는 사람이라면 누구나 "마진 대비"(iOS 8의 새로운 기능) 뷰를 레이아웃하는 것처럼 보였습니다.
대신에:

사용하다:

나는 며칠 동안 이것으로 어려움을 겪고 있습니다.
스토리 보드에서 페이지 ViewController를 인스턴스화하여 구현하려고했습니다. 명확한 크기 조정이 발생했습니다. 프레임 크기 확인
- pageViewController : viewControllerAfterViewController
- pageViewController : willTransitionToViewControllers
- pageViewController : didFinishAnimating : previousViewControllers
프레임 크기는 항상 1 과 3 호출 사이에서 변경 됩니다. 때로는 2시 이전 과 때로는 이후.
스토리 보드도 사용하는 경우 페이지 UI 요소를 자체 XIB 파일로 추출하고 IB에서 제약 조건을 설정 한 다음 initWithNibName을 호출하여 페이지를 생성하여 문제를 해결할 수있었습니다 .
완전한 답은 아니지만 생산적인 느낌을 받았습니다. 도움이 되었기를 바랍니다.
나에게 해결책은 tableView의 상단을 superview에 고정하는 것이 었습니다. Editor-> Pin-> Top Space To SuperView (iOS8)
iOS 8의 버그이지만 해결 방법을 찾았습니다.
스토리 보드의 상태 표시 줄 위에 빈보기를 추가합니다. 보기의 높이는 이동중인 개체의 y 값과 같아야합니다.

'IT TIP' 카테고리의 다른 글
| Tkinter :“Python이 Tk 용으로 구성되지 않았을 수 있습니다.” (0) | 2020.11.19 |
|---|---|
| numpy를 사용하여 Python에서 TIFF (가져 오기, 내보내기) 작업 (0) | 2020.11.19 |
| Dagger2 종속성-Gradle (0) | 2020.11.19 |
| Pandas 데이터 프레임에서 튜플 열을 분할하는 방법은 무엇입니까? (0) | 2020.11.19 |
| 사용자 지정 작업 필터에서 작업으로 ASP.NET MVC 전달 개체 (0) | 2020.11.19 |