2016-11-14 1 views
0

여기에 내 코드가 있습니다. 중복 된 질문처럼 들릴지 모르겠지만 QLPreviewController를 하위보기로 추가하지 않고 컨트롤러로 제시 할 때와 다른 시나리오가 있습니다. QLPreviewController 대리자 메서드가 iOS 10에서는 호출되지 않지만 iOS보다 먼저 실행되는 경우 호출됩니다.

는 보관에서 다운로드 한 후, 나는 그것이
self.pdfViewController = [[QLPreviewController alloc] init]; 
    self.pdfViewController.delegate = self; 
    self.pdfViewController.dataSource = self; 

    [self presentViewController:self.pdfViewController animated:YES completion:nil]; 

을 삼았 제시하고 또한 QLPreviewControllerDataSource, QLPreviewControllerDelegate이 프로토콜로 나열되어 있습니다. 게다가 iOS 10.0 이전 버전에서 실행되면 작동합니다.

도와주세요.

+0

대리자 메서드가 호출되지 않습니다. –

+0

- (BOOL) previewController : (QLPreviewController *) 컨트롤러 shouldOpenURL : (NSURL *) url forPreviewItem : (id ) 항목, 실제로 대리자입니다. – Natasha

+0

최신 iOS 10.2 베타 버전에서 수정해야합니다. –

답변

0

iOS 10이 변경된 모양이 QLPreviewController 인 것으로 보입니다. iOS 9에서 모달로 QLPreviewController을 표시하여 이미지를 미리 볼 때 멋진 확대/축소 효과가 나타나고 미리보기의 초기 상태는 검은 색 배경과 탐색 및 툴바가 숨겨져 있습니다. 막대를 보이도록 이미지를 가볍게 두 드릴 수 있습니다 (배경을 흰색으로 변경). 다시 누르면 상태가 전환됩니다.

iOS 10에서 동일한 코드로 인해 흰색 배경이 나타나고 확대/축소 애니메이션이 올바르지 않습니다 (화면 하단에서 나타나는 것처럼 보임). previewController:frameForPreviewItem:inSourceView:은 (원본 컨텐츠의 프레임에 대한 기준으로 사용되는 것을

- (UIView* _Nullable)previewController:(QLPreviewController *)controller 
      transitionViewForPreviewItem:(id <QLPreviewItem>)item 
{ 
    return [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:MIDPhotoImageRowIndex_Image inSection:MIDPhotoSectionIndex_Image]]; 
} 

I 반환 뷰 동일한 도면이다 :

는 I IOS를 (10)이 실질적으로 불법 새로운 데이터 소스 방법을 구현하는 문제를 해결 한 것으로 나타 즉 내 테이블 셀의 이미지보기).

작성 당시의이 위임 방법에 대한 documentation에는 "사용 가능한 개요 없음"이 표시됩니다.

그 방법을 구현하면 previewController:frameForPreviewItem:inSourceView:이 이제 iOS 10에서 호출된다는 의미였습니다. 탐색 막대가없는 원래 검은 색 배경을 기본값으로 설정하는 방법이 있었으면 좋겠습니다.

관련 문제