Используя FastPdfKit ( FastPdfKit sdk site ), я реализовал documentViewController:didReceiveDoubleTapOnAnnotationRect
со следующим кодом:
-(void)documentViewController:(MFDocumentViewController *)dvc didReceiveTapOnAnnotationRect:(CGRect)rect withUri:(NSString *)uri onPage:(NSUInteger)page {
NSArray *arrayParameter = nil;
NSString *uriType = nil;
NSString *uriResource = nil;
arrayParameter = [uri componentsSeparatedByString:@"://"];
uriType = [NSString stringWithFormat:@"%@", [arrayParameter objectAtIndex:0]];
uriResource = [NSString stringWithFormat:@"%@", [arrayParameter objectAtIndex:1]];
if ([uriType isEqualToString:@"pamv1"]) {
NSString *marker = uriResource;
NSLog(@"Marker: %@", marker);
}
}
Это работает, до некоторой степени.Когда я дважды нажимаю на аннотацию, вывод NSLog показывает:
2012-03-15 17:37:53:599 iFlightBag[8286:1799] -[ManualsListViewController documentViewController:didReceiveDoubleTapOnAnnotationRect:withUri:onPage:] [Line 155] Marker: Builtin_Manual_IOM_annotations.pdf?page=3¶graph=6&edit=0
Проблема: Когда я устанавливаю делегата, я теряю встроенный интерфейс считывателя: нажмите для меню, кнопка «Готово», миниатюрыи т. д. У меня все еще есть пролистывание и постукивание по краю для смены страниц, двойное касание (без аннотации) и масштабирование.Поэтому я не могу выйти из программы просмотра (и всех других функций из интерфейса управления).Я устанавливаю делегата, используя:
[pdfViewController setDocumentDelegate:self];
Весь код для реализации FastPdfKit в моем приложении (в основном из их примера):
-(void)openFastPdfURL:(NSURL *)documentUrl {
// TestFlight api
TESTFLIGHT_CHECKPOINT(@"ManualsFastPdfKit");
/** Set document name */
NSString *documentName = [documentUrl lastPathComponent];
/** Get temporary directory to save thumbnails */
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
/** Set thumbnails path */
NSString *thumbnailsPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",documentName]];
/** Get document from the App Bundle */
// NSURL *documentUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:documentName ofType:@"pdf"]];
/** Instancing the documentManager */
MFDocumentManager *documentManager = [[MFDocumentManager alloc]initWithFileUrl:documentUrl];
/** Instancing the readerViewController */
ReaderViewController *pdfViewController = [[ReaderViewController alloc]initWithDocumentManager:documentManager];
/** Set resources folder on the manager */
documentManager.resourceFolder = thumbnailsPath;
/** Set document id for thumbnail generation */
pdfViewController.documentId = documentName;
/** Set the delegate */
[pdfViewController setDocumentDelegate:self];
/** Present the pdf on screen in a modal view */
[self presentModalViewController:pdfViewController animated:YES];
/** Release the pdf controller*/
[pdfViewController release];
}
и в моем didSelectRowAtIndexPath:
// fastPdfKit
else if ([manuals.Format isEqualToString:@"fastpdf"]) {
[self openFastPdfURL:[self locateUrl:[NSURL URLWithString:manuals.Url] ofType:[manuals.Url pathExtension]]];
}
Мои цели: 1. Ускоренное внутреннее средство чтения PDF (завершено) 2. Обработка пользовательских аннотаций (в процессе)
Мне также нужно сохранить пользовательский интерфейс читателя, чтобы пользователь мог обрабатывать закладки,поиск, миниатюры, завершение просмотра и т. д. *
Если я закомментирую строку
[pdfViewController setDocumentDelegate:self];
, появится полный пользовательский интерфейс.Кто-нибудь реализовал интерфейс аннотаций FastPdfKit?