所有
尝试确定如何在搜索注释引脚标题时显示用户搜索位置的名称,而不是将它们预先确定,这很容易。我用户输入位置的搜索栏的当前代码如下:
- (IBAction) showAddress
{
[addressField resignFirstResponder];
CLLocationCoordinate2D location = [self addressLocation];
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.2;
span.longitudeDelta=0.2;
region.span=span;
region.center=location;
[mapView setRegion:region animated:TRUE];
[mapView regionThatFits:region];
MapViewAnnotation *addAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"" andCoordinate:location];
[self.mapView addAnnotation:addAnnotation];
}
我在下面声明了我的标题信息:
@implementation AddressAnnotation
@synthesize _name;
-(id)initWithName:(NSString*)name address:(NSString*)address coordinate:(CLLocationCoordinate2D)coordinate {
if ((self = [super init]))
{
_name = [name copy];
}
return self;
}
-(NSString *)title
{
if ([_name isKindOfClass:[NSNull class]])
return @"Unknown charge";
else
return _name;
}
@end
我的理解是我需要用标题变量名替换我的initWithTitle,但我的问题是它会是什么样的,并且足以显示用户对这些自定义搜索的标题?
谢谢!! 格雷格
答案 0 :(得分:1)
如果您想坚持使用当前的AddressAnnotation定义,请将showAddress的最后两行更改为
AddressAnnotation *addAnnotation = [[AddressAnnotation alloc] initWithName:@"" coordinate:location];
[self.mapView addAnnotation:addAnnotation];
您需要将@“”替换为您想要的标题。
但是,您可能希望更改AddressAnnotation以使用title
而不是_name
,以便@synthsize为您完成所有工作。在初始化功能期间,如果需要,可以将标题设置为“未知”。
答案 1 :(得分:0)
您只需设置引脚注释的标题即可。
这是一个很好的教程......
http://www.richardhyland.com/diary/2009/10/27/how-to-add-a-pin-to-embedded-map/