gpt4 book ai didi

ios - MKUserTrackingBarButtonItem 在应用被禁止使用当前位置后旋转

转载 作者:行者123 更新时间:2023-12-01 18:14:07 25 4
gpt4 key购买 nike

我在 View Controller 的 viewDidLoad 中添加了 MKUserTrackingBarButtonItem 的实例如下:

MKUserTrackingBarButtonItem *userTrackingButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self->mapView];
NSMutableArray *toolbarItems = [[NSMutableArray alloc] initWithArray:[mapToolBar items]];
[toolbarItems insertObject:userTrackingButton atIndex:0];
[mapToolBar setItems:toolbarItems];

定位服务已在“设置”中打开,但未在应用程序中打开。当点击 MKUserTrackingBarButtonItem 按钮时,模式对话框询问用户是否允许应用使用当前位置。选择“不允许”时,MKUserTrackingBarButtonItem 会变成灰色的虚线旋转图标,并且不会恢复原始指南针图标。

如何恢复在 map 应用程序中完成的按钮状态?

所需的行为与 map 应用程序中的行为相同。
  • 确保在“设置”>“隐私”>“定位服务”中打开“定位服务”。
  • 在设置 > 通用 > 重置 > 重置位置和隐私中重置位置和隐私。
  • 启动 map 应用程序。
  • 点击左下角的指南针图标。
  • 将出现一个对话框,其中包含消息“ map ”希望使用您当前的位置”。此刻,罗盘图标已经变成了一个灰色的虚线旋转图标。
  • 选择“不允许”。

  • 恢复原来的指南针图标。

    我在 iPhone 上而不是在模拟器上测试这个。当定位服务打开并且允许应用程序使用当前位置时,上面的代码可以正常工作。

    最佳答案

    实现 CLLocationManagerDelegate方法 :
    - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
    当 CLAuthorizationStatus 不是 kCLAuthorizationStatusAuthorized您可以更新 userTrackingMode您的 MKMapview 的属性为 MKUserTrackingModeNone

    关于ios - MKUserTrackingBarButtonItem 在应用被禁止使用当前位置后旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456694/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com