Я работаю в приложении, которое отображает карту в формате pdf. В том, что у меня есть базовая карта pdf (pdf1), поверх которой мне нужно показать еще один слой, который имеет название города, (pdf2).Правильный способ добавления содержимого в pdf при масштабировании ios
Я могу сделать это, добавив еще один объект CATiledLayer на представлении, как показано ниже:
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"pdf"];
NSURL *pdfURL = [NSURL fileURLWithPath:filePath];
CGPDFDocumentRef myDocumentRef = CGPDFDocumentCreateWithURL((CFURLRef) pdfURL);
_PDFPageRef = CGPDFDocumentGetPage(myDocumentRef, 1);
CATiledLayer *tiledLayer = [CATiledLayer layer];
tiledLayer.delegate = self;
tiledLayer.levelsOfDetail = 3; // Zoom levels
tiledLayer.levelsOfDetailBias = 3; // Bias
tiledLayer.backgroundColor = [UIColor clearColor].CGColor;
UIScreen *mainScreen = [UIScreen mainScreen]; // Main screen
CGFloat screenScale = [mainScreen scale]; // Main screen scale
CGRect screenBounds = [mainScreen bounds]; // Main screen bounds
CGFloat w_pixels = (screenBounds.size.width * screenScale);
CGFloat h_pixels = (screenBounds.size.height * screenScale);
CGFloat max = ((w_pixels < h_pixels) ? h_pixels : w_pixels);
CGFloat sizeOfTiles = ((max < 512.0f) ? 512.0f : 1024.0f);
tiledLayer.tileSize = CGSizeMake(sizeOfTiles, sizeOfTiles);
tiledLayer.frame = CGRectIntegral(CGPDFPageGetBoxRect(_PDFPageRef, kCGPDFCropBox));
[[self layer] addSublayer:tiledLayer];
[self setNeedsDisplay];
Но я столкнулся с двумя проблемами здесь:
Если PDF1 не загружен полностью и Я добавлю еще один pdf2, а pdf1 никогда не будет полностью загружен. Он будет размытым.
Если pdf1 загружен полностью, то при добавлении формата pdf2 и масштабирования после увеличения 3,4 раза, pdf1 становится размытым.
Пожалуйста, помогите !!