iOS开发,地图大头针标记 选中状态 的正确处理办法(此解决方法适用于自带地图、高德地图、百度地图)

本文介绍了一个iOS应用中实现地图导航选择功能的方法。当用户在地图上点击一个位置时,会弹出一个警告框,提供使用高德地图或百度地图进行导航的选项,同时提供了取消按钮。文章展示了如何通过Swift代码实现这一功能,包括使用UIAlertController创建警告框,以及如何在不同的地图应用间切换。

- (void)mapView:(MAMapView *)mapView didSelectAnnotationView:(MAAnnotationView *)view {

    NSLog(@"选中了标注%f, %f",view.annotation.coordinate.latitude, view.annotation.coordinate.longitude);

    WeakSelf;

    UIAlertController *alerController = [UIAlertController alertControllerWithTitle:@"导航" message:@"选择导航方式" preferredStyle:UIAlertControllerStyleActionSheet];

    UIAlertAction *action = [UIAlertAction actionWithTitle:@"高德地图" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

 

    }];

    UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"百度地图" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        

    }];

    UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

//        [view setSelected:NO animated:YES];       //有BUG

//        view.selected = NO;                       //有BUG

//        取消选中正确方式

        StrongSelf;

        for (id <MAAnnotation>annotation in strongSelf.mapView.annotations) {

            [strongSelf.mapView deselectAnnotation:annotation animated:YES];

        }

    }];

    [alerController addAction:action];

    [alerController addAction:action1];

    [alerController addAction:action2];

    [self.navigationController presentViewController:alerController animated:YES completion:nil];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值