MKMapView から画像を取得して、「サムネイル」画像として UITableViewCell に追加しようとしています。問題は、イメージが正しいマップではなく単色としてレンダリングされることです。MKMapView をテスト目的でビューに直接追加したところ、正しく読み込まれました。
cellForRowAtIndexPath のコードを次に示します。
//create correct map thumbnail
MKMapView *mapForThumbnail = [[MKMapView alloc] init];
mapForThumbnail.frame = CGRectMake(0, 0, 100, 100);
mapForThumbnail.delegate = self;
CLLocationCoordinate2D coords[coordinates.count];
for(int i = 0; i < coordinates.count; i++){
CLLocation *currentLocationCoords = [coordinates objectAtIndex:i];
coords[i] = CLLocationCoordinate2DMake(currentLocationCoords.coordinate.latitude, currentLocationCoords.coordinate.longitude);
}//end for
MKPolyline *polylineForMapThumbnail = [MKPolyline polylineWithCoordinates:coords count:coordinates.count];
[mapForThumbnail addOverlay:polylineForMapThumbnail];
[mapForThumbnail setRegion:MKCoordinateRegionForMapRect([polylineForMapThumbnail boundingMapRect])];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), NO, 0.0);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
[mapForThumbnail.layer renderInContext:currentContext];
UIImage *mapImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
cell.imageView.image = mapImage;
cell.detailTextLabel.text = stringForDetailLabel;
cell.detailTextLabel.font = [UIFont fontWithName:@"Verdana" size:12.0f];
cell.detailTextLabel.textColor = [UIColor darkGrayColor];
これが何が起こっているかの画像です: