Kas*_*sem 12 iphone cocoa-touch objective-c ios ios5
我一直在寻找类似于如何设计像这样的自定义MKAnnotationView的解决方案.

我是MKAnnotation的子类,我能够添加一个名为F.png的图像,F.png是一个帧图像,如图所示.我想要的是添加内部图像.(我绘制的图片中的蓝色)
- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if(annotationView)
return annotationView;
else
{
MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
annotationView.canShowCallout = YES;
annotationView.image = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"]];
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(writeSomething:) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:annotation.title forState:UIControlStateNormal];
annotationView.rightCalloutAccessoryView = rightButton;
annotationView.canShowCallout = YES;
annotationView.draggable = NO;
return annotationView;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
ada*_*ali 12
在你的代码中
else
{
MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
annotationView.canShowCallout = YES;
//change here
annotationView.image = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"]];
UIImage *frame = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"];
UIImage *image = theImageInFrameInner;
UIGraphicsBeginImageContext(CGSizeMake(pin.size.width, pin.size.height));
[frame drawInRect:CGRectMake(0, 0, frame.size.width, frame.size.height)];
[image drawInRect:CGRectMake(2, 2, 60, 60)]; // the frame your inner image
//maybe you should draw the left bottom icon here,
//then set back the new image, done
annotationView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(writeSomething:) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:annotation.title forState:UIControlStateNormal];
annotationView.rightCalloutAccessoryView = rightButton;
annotationView.canShowCallout = YES;
annotationView.draggable = NO;
return annotationView;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14388 次 |
| 最近记录: |