我的任务是在第二次点击时取消选择地图注释.
我没有找到如何使用mapView函数.所以我使用了stackoverflow中的一篇文章并且这样做:
- (void)viewDidLoad
{
annotationTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(annotationTapRecognized:)];
annotationTap.numberOfTapsRequired = 1;
annotationTap.delegate = self;
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
[view addGestureRecognizer:annotationTap];
}
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
[view removeGestureRecognizer:annotationTap];
}
- (void)annotationTapRecognized:(UIGestureRecognizer *)gesture
{
NSArray *selectedAnnotations = self.viewMap.selectedAnnotations;
for (MapAnnotation *annotationView in selectedAnnotations) {
[self.viewMap deselectAnnotation:annotationView animated:NO];
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎工作正确,但事实并非如此.当我第二次点击注释时,标注消失并再次出现.
有任何想法吗?
提前致谢.
我在iOS应用程序中遇到了问题.
我必须得到所有60个谷歌地方.我创建了用于发送请求和解析结果的循环.在这个循环中,我创建了这样的URL:
if (nextPageToken != nil && ![nextPageToken isEqualToString:@""])
pageToken = [NSString stringWithFormat:@"&pagetoken=%@", nextPageToken];
NSString *webStringURL = [[NSString stringWithFormat:@"%@?sensor=true&key=%@&location=%@&radius=%@%@", urlString, apiKey, location, radius, pageToken] stringByAddingPercentEscapesUsingEncoding:NSUTF32StringEncoding];
Run Code Online (Sandbox Code Playgroud)
前20个对象的结果链接:
它返回结果没有问题.所以没关系.
接下来的20个对象的结果链接如下:
但在这种情况下,应用程序接收状态"INVALID_REQUEST".如果我在浏览器中打开此链接,一切正常.Google会将结果返回给我.
你能帮我解决什么问题吗?我花了很多时间,但我无法弄清楚我做错了什么.
提前致谢.
PS抱歉我的英语不好.