Ось мій код. Це може здатися зайвим питанням, але мій сценарій інший, оскільки я не додаю QLPreviewController як підпрезгляд, але присутній як контролер.
Після завантаження з Dropbox я представляю це як-
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 для відповіді № 1Схоже, iOS 10 змінив так QLPreviewController
представлено. На iOS 9, коли я попередньо переглядаю зображення, представляючи QLPreviewController
модально я бачу приємний ефект збільшення та початковий ефектстан попереднього перегляду з чорним фоном та навігацією та панеллю інструментів приховано. Я можу торкнутися зображення, щоб зробити смужки видимими (що змінює фон на білий). Натискання знову перемикає стан.
На iOS 10 той самий код призводить до появи білого перегляду фону, а анімація масштабування неправильна (здається, вона з’являється внизу екрана).
Я виявив, що реалізація цього практично недокументованого нового методу джерела даних для iOS 10 вирішила проблему:
- (UIView* _Nullable)previewController:(QLPreviewController *)controller
transitionViewForPreviewItem:(id <QLPreviewItem>)item
{
return [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:MIDPhotoImageRowIndex_Image inSection:MIDPhotoSectionIndex_Image]];
}
Погляд, який я повертаю, - це той самий погляд, який previewController:frameForPreviewItem:inSourceView:
використовується як орієнтир для вихідного кадру вмісту (тобто подання зображення в комірці моєї таблиці).
The документація для цього методу делегата на момент написання просто сказано "Немає огляду".
Реалізація цього методу означала, що previewController:frameForPreviewItem:inSourceView:
тепер називається на iOS 10. Я просто хотів би, щоб був спосіб за замовчуванням до початкового чорного фону без навігаційних панелей.