首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 6映射问题与MKUserTrackingModeFollowWithHeading

iOS 6映射问题与MKUserTrackingModeFollowWithHeading
EN

Stack Overflow用户
提问于 2013-03-27 16:27:44
回答 2查看 1.4K关注 0票数 4

我试图用MKUserTrackingModeFollowWithHeading解决iOS 6中的两个问题:

  • MKUserTrackingModeFollowWithHeading工作简单,但它很紧张,几乎立即返回到MKUserTrackingModeFollow,特别是在高缩放级别时。
  • 在反复更改MKUserTrackingMode时,这个应用程序偶尔会崩溃:我在主线程上得到了EXC_BAD_ACCESS,而没有进一步的信息。这是很难复制的,但它已经反复发生了。

对是什么原因有什么想法吗?这感觉就像一个bug,但苹果自己的“地图”应用程序并没有表现出这种行为。

为了隔离这些问题,我创建了一个带有MKMapViewUIToolbar (在.xib中设置)的单一视图应用程序,并向其中添加了一个MKUserTrackingBarButtonItemUIViewController充当<MKMapViewDelegate>。以下是完整的实现代码:

代码语言:javascript
复制
#import "ViewController.h"

@implementation ViewController

@synthesize mapView, toolbar;

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Add MKUserTrackingBarButtonItem to toolbar
    MKUserTrackingBarButtonItem *trackButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView];
    [toolbar setItems:[NSArray arrayWithObjects:trackButton, nil] animated:YES];
}


- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated
{
    // Log MKUserTrackingMode change
    NSString *modeType = (mode == 0) ? @"None" : ((mode == 1) ? @"Follow" : @"FollowWithHeading");
    NSLog(@"MKUserTrackingMode changed to: %@", modeType);
}

@end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-05 19:08:12

这是一个错误 in MapKit。在使用MapKit的苹果地图上也可以看到这一点,比如查找我的朋友应用程序。请注意,Apple应用程序没有使用MapKit (至少不是相同的版本),因此它不受此bug的影响。

我还在MapKit中看到了零星的MapKit崩溃。事实上,与MapKit相关的崩溃在我的应用程序中占了绝大部分。:(

票数 4
EN

Stack Overflow用户

发布于 2013-04-03 16:48:56

我还注意到,MKUserTrackingModeFollowWithHeading工作时间很短,而且它几乎立即改变为MKUserTrackingModeFollow,特别是在高缩放级别时。

我试过了

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated {
    if (mapView.userTrackingMode != MKUserTrackingModeFollowWithHeading) {
        [mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading];
    }
}

但是这会创建一个永久的循环,因为在我切换到MKUserTrackingModeFollowWithHeading之后,一些东西就会回到MKUserTrackingModeFollow。这真的很烦人,因为我不知道是什么在不断地将跟踪模式更改为MKUserTrackingModeFollow。

很抱歉,我的答案没有用,但我在这里贴来证实这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15664092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档