ios - 无法在 MKPinAnnotationView 上设置标题
<p><p>我已按照本教程进行操作:
<a href="http://www.shawngrimes.me/2011/04/custom-map-pins-for-mapkit/#comment-193" rel="noreferrer noopener nofollow">http://www.shawngrimes.me/2011/04/custom-map-pins-for-mapkit/#comment-193</a> </p>
<p>但我无法添加标题和描述</p>
<p>(在此处查看我的代码 <a href="http://pastebin.com/03mDLc9q" rel="noreferrer noopener nofollow">http://pastebin.com/03mDLc9q</a>)</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您正在尝试将名称和描述设置为注释 View 的属性,您应该在注释对象上使用 <code>title</code> 和 <code>subtitle</code> - <code>MyAnnotationClass</code>,注解 View 在渲染标注时将使用该对象的标题和副标题。</p>
<p>我更改了您的代码以在此处工作:<a href="http://pastebin.com/YRGYhQev" rel="noreferrer noopener nofollow">http://pastebin.com/YRGYhQev</a> </p>
<pre><code>@interface MyAnnotationClass : NSObject<MKAnnotation>
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *subtitle;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
-(id) initWithCoordinate:(CLLocationCoordinate2D) coordinate;
@end
MyAnnotationClass.m
#import "MyAnnotationClass.h"
@implementation MyAnnotationClass
-(id) initWithCoordinate:(CLLocationCoordinate2D) coordinate{
self=;
if(self){
_coordinate = coordinate;
}
return self;
}
-(void) dealloc{
;
;
;
}
@end
ViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface ViewController : UIViewController<MKMapViewDelegate> {
IBOutlet MKMapView *_myMapView;
NSArray *_myAnnotations;
}
@property (nonatomic, retain) NSArray *myAnnotations;
@property (nonatomic, retain) IBOutlet MKMapView *myMapView;
@end
ViewController.m
#import "ViewController.h"
#import "AppDelegate.h"
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
#import "PlaceMark.h"
#import "MyAnnotationClass.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize myMapView = _myMapView;
@synthesize myAnnotations = _myAnnotations;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = ;
if (self) {
// Custom initialization
}
return self;
}
-(void) viewDidLoad{
AppDelegate *appDelegate = (AppDelegate *)[delegate];
//Initialize annotation
MyAnnotationClass *commuterLotAnnotation=[ initWithCoordinate:CLLocationCoordinate2DMake(appDelegate.latitude , appDelegate.longitude)];
commuterLotAnnotation.title = @"Hello title";
commuterLotAnnotation.subtitle = @"Correct";
MyAnnotationClass *overflowLotAnnotation=[ initWithCoordinate:CLLocationCoordinate2DMake(appDelegate.latitude , appDelegate.longitude)];
overflowLotAnnotation.title = @"Hello title";
overflowLotAnnotation.subtitle = @"Correct";
//Add them to array
self.myAnnotations=;
//Release the annotations now that they've been added to the array
;
;
//add array of annotations to map
;
}
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation{
static NSString *parkingAnnotationIdentifier=@"ParkingAnnotationIdentifier";
if(]){
//Try to get an unused annotation, similar to uitableviewcells
MKAnnotationView *annotationView=;
//If one isn't available, create a new one
if(!annotationView){
annotationView=[ initWithAnnotation:annotation reuseIdentifier:parkingAnnotationIdentifier];
//Here's where the magic happens
annotationView.image=;
annotationView.canShowCallout = YES;
}
return annotationView;
}
return nil;
}
- (void)viewDidUnload
{
;
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
</code></pre></p>
<p style="font-size: 20px;">关于ios - 无法在 MKPinAnnotationView 上设置标题,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/12905274/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/12905274/
</a>
</p>
页:
[1]