iOS Mapkit自定义标注
2020年02月04日
作者:佚名
这是一个示例自定义标注,我希望得到类似的风格.我正在考虑从MKAnnotation继承,但我失去了如何启动它,我不知道标注的设计是否可以被覆盖.
有关如何使用ui控件实现此自定义标注的任何想法?
编辑:这是我的代码来自类似的StackOverflow答案:
- (MKAnnotationView *)mapView:(MKMapView *)mapview 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 { UIImage *img = [UIImage imageNamed:@"default_thumb.png"]; MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; annotationView.canShowCallout = YES; annotationView.image = img; annotationView.draggable = YES; /* // change left accessory view button with image UIImageView *leftAccView = [[UIImageView alloc] initWithImage:img]; annotationView.leftCalloutAccessoryView = leftAccView; //include a right button to show more info UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; [rightButton addTarget:self action:@selector(calloutSubMenu:) forControlEvents:UIControlEventTouchUpInside]; [rightButton setTitle:annotation.title forState:UIControlStateNormal]; annotationView.rightCalloutAccessoryView = rightButton; */ return annotationView; } return nil; } // Customize accessory view - (void)mapView:(MKMapView *)mapview annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { [mapview deselectAnnotation:view.annotation animated:YES]; PopOverCallout *popOverCallout = [[PopOverCallout alloc]init]; UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:popOverCallout]; self.annotationPopoverController = popOver; popOver.popoverContentSize = CGSizeMake(500,500); [popOver presentPopoverFromRect:view.bounds inView:view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; }
该
(void)mapView:(MKMapView *)mapview annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
触摸引脚时应该调用以显示标注权限吗?但是会发生一个空白的常规标注.我可能做错了什么?
顺便说一句:UIViewController子类只在它的XIB上有一个标签,几乎是空白的.
解决方法
午睡几分钟后找到答案.
使用this作为指南,我只需要覆盖
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
它显示了注释标注.再次感谢安娜女士的回答.
以上是来客网为你收集整理的iOS Mapkit自定义标注全部内容,希望文章能够帮你解决iOS Mapkit自定义标注所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。