Я выполняю некоторые операции рисования CG в CGContext, который я создал для MKMapOverlayView.После рисования в моем контексте я создаю изображение и вставляю его в контекст, предоставленный MapKit.
- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context {
CGColorSpaceRef colorRef = CGColorSpaceCreateDeviceRGB();
CGContextRef myContext = CGBitmapContextCreate(NULL, kTileSize, kTileSize, 8, 0, colorRef, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorRef);
CGContextSetAllowsAntialiasing(myContext, TRUE);
//...cut out drawing operations...
CGImageRef image = CGBitmapContextCreateImage(myContext);
CGContextDrawImage(context, [self rectForMapRect:mapRect], image);
CGImageRelease(image);
CGContextRelease(myContext);
}
Есть ли способ просто скопировать myContext
в context
без необходимости создания изображения?
Я понимаю, что некоторые из вас скажут "почему бы просто не рисовать непосредственно в контексте, который предоставляет MapKit".К сожалению, при рендеринге в context
мы испытываем затруднения при рисовании.Apple в настоящее время изучает эту проблему для нас, но в то же время мы должны найти обходной путь.Этот обходной путь, который я представил выше, является моим «лучшим» выстрелом, но он немного медленный.
PS Я получил награду, так как я тоже ищу ответ здесь,В частности, я ориентируюсь на OS X. Так что ответ должен работать там.ОП искал ответ на iOS.