如何在 iOS6 上调整 MKAnnotationView 的大小?

2023-12-14

调整 MKAnnotationView 图像大小 地图何时放大和缩小?该方法在iOS5上成功,但在iOS 6上失败。

我直接更改 MKAnnotationView 的变换,但没有成功。 MKAnnotationView仅在瞬间调整大小(当在MKMapView内部触摸时,触摸完成后,MKAnnotationView将恢复原始大小)。

我的代码如下:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
for (id <MKAnnotation>annotation in _mapView.annotations) {
    // if it's the user location, just return nil.
    if ([annotation isKindOfClass:[MKUserLocation class]])
        continue;

    // handle our custom annotations
    //
    if ([annotation isKindOfClass:[XPMKAnnotation class]])
    {
        // try to retrieve an existing pin view first
        MKAnnotationView *pinView = [_mapView viewForAnnotation:annotation];
        //resize the pin view
        double zoomLevel = [_mapView getZoomLevel];
        double scale = (1.0 * zoomLevel / 16) + 0.5;
        pinView.transform = CGAffineTransformMakeScale(scale, scale);
    }
    }
}

我们可以在 iOS6 上调整 MKAnnotationView 的大小吗?有人知道有什么办法吗?


Apple 建议调整注释视图的 .image 属性的大小。在下面所示的例子中,我查看了 viewforAnnotation 中设置的 UIImage 并将其重新缩放到 UIPinchGestureRecognizer 中的缩放级别

   UIImage *orangeImage = [UIImage imageNamed:@"Orange210.PNG"];
    CGRect resizeRect;
    //rescale image based on zoom level
    resizeRect.size.height = orangeImage.size.height * scale;
    resizeRect.size.width = orangeImage.size.width  * scale ;
    NSLog(@"height =  %f, width = %f, zoomLevel = %f", resizeRect.size.height, resizeRect.size.width,zoomLevel );
    resizeRect.origin = (CGPoint){0,0};
    UIGraphicsBeginImageContext(resizeRect.size);
    [orangeImage drawInRect:resizeRect];
    UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    pinView.image = resizedImage;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iOS6 上调整 MKAnnotationView 的大小? 的相关文章

  • MKMapView 完全缩小时的缩放问题

    我通过单击按钮缩小地图 因此 当地图完全缩小时 如果我尝试再次缩小它 那么它在设置区域时会崩溃 不确定 但是有什么方法可以检测地图是否达到最大缩放限制吗 这是我缩小地图的代码 void setZoomLevelForNoPicksCurre
  • 检测对标注标题的点击

    我如何检测到点击title注释的标注 我已经有一个右侧标注配件和一个左侧标注配件 但我想检测用户是否点击标题 位于标注的中心 如果这是不可能的 如何在点击标题时禁用隐藏标注 回答你的问题有点晚了 但我最近正在处理同样的问题 并通过反复试验自
  • 如果在添加注释时缩放,MKMapView 会崩溃

    看来我遇到了一个问题 我可以可靠地导致我的MKMapView如果我在更改地图的可见区域时添加注释 则会崩溃 我已经将导致它的代码简化为一个非常简单的实现 并且我在这里重现它 NSMutableArray pointAnnotationArr
  • 将 TintColor 设置为 MKAnnotationView 图像

    我正在写一份申请iOS 7 0 我想使用的新功能是 imageWithRenderingMode 我有一个带有以下代码的地图注释 MKAnnotationView annotationView MKAnnotationView annota
  • 在后台加载 MKMapView 并从中创建 UIImage (iPhone 和 iPad)

    我遇到一种情况 我需要一种加载具有多个覆盖层的 MKMapView 的方法 此地图视图不应显示在屏幕上 我需要加载它的唯一原因是为了从地图创建图像以供在其他地方使用 我在网上查了一下 但没有找到解决问题的方法 请问有人可以帮我吗 这是我到目
  • 在地图视图的可见矩形内显示 MKMapViewAnnotations

    我在路径样式视差表视图标题内显示 MKMapView 为了创建效果 mapView 边界大于用户可见的区域 我需要设置地图视图区域 以便所有地图注释都包含在 MKMapView 的可见矩形内 最好的方法是什么 为了清楚起见编辑 这是一个用例
  • 更改 MKOverlayView 的 MKOverlay 坐标

    我在地图上有一个叠加层 我想更改其坐标 为了无缝地做到这一点 我将调用设置需要显示地图矩形 http developer apple com library ios documentation MapKit Reference MKOver
  • 有没有办法允许仅将 MKMapView 缩放到特定区域,同时禁用任何其他用户交互?

    我有一个swift带有 MapView 的应用程序 这些是我在地图故事板上的设置 另外 在我正在做的代码中 let regionRadius CLLocationDistance 10000 let initialLocation CLLo
  • 具有自定义视图和图像视图的 MKAnnotationView

    在我的地图应用程序中 我想显示一个带有图像的彩色背景圆圈 而不是显示图钉 背景圆圈的颜色 下图中的绿色阴影 是动态的 它将如下图所示 我创建了 TCircleView 它在 drawRect 中绘制颜色为了显示类似的注释 我创建了 TCir
  • 如何在地图图钉注释中显示图像?

    我有一个视图 gt gt 子视图 mkmapview in that i want to show image my current image is like this 我想这样展示 我怎样才能做到这一点 我如何在此注释中添加图像 您正在
  • 在 Swift 中显示当前位置并更新 MKMapView 中的位置

    我正在学习如何使用新的 Swift 语言 只有 Swift 没有 Objective C 为此 我想用地图做一个简单的视图 MKMapView 我想查找并更新用户的位置 就像在 Apple 地图应用程序中一样 我尝试了这个 但什么也没发生
  • 在 MKMapView 上安装注释,同时保持用户位置居中

    我正在尝试将所有注释放入我的MKMapView同时将当前用户位置保持在地图中心 已经有很多参考资料 1 2 介绍如何缩小区域以适合地图上的注释 但它们会调整当前的中心位置 例如如果所有注释都位于我当前用户位置的东部 它将进行调整 以便当前用
  • 如何在地图视图中添加自定义标注视图

    我是 Objective C 中的 MapKit 新手 我可以在地图视图中添加自定义注释 我需要放置自定义标注视图 如下图所示 但我不明白如何设计这样的标注视图 我知道我需要在注释方法的视图中添加标注 MKAnnotationView ma
  • 无法渲染多边形(无法保留索引:XX):featureID:X key:XXXX

    我有用Mac OS X 10 9 3 and Xcode 5 1 1 在我的应用程序中我必须使用MKMapView 一切都工作正常 但在 iOS 6 1 中 我在控制台中显示了奇怪的错误 例如 Can t render polygon ca
  • 自定义地图标注视图点击即可隐藏

    我已经制作了自定义地图标注 我的标注包含UIButtons and UITextView 当我点击时UIButton 按起来很好 但是当我点击UITextView它将光标移动到点击位置 然后取消选择图钉并消失标注 我已经实施了hitTest
  • 使用 MapKit ios 绘制渐变折线

    我正在尝试使用叠加层 MKOverlay 跟踪 MKMapView 上的路线 但是 根据当前的速度 如果颜色发生变化 例如 如果用户从 65 英里每小时行驶到 30 英里每小时 则从绿色变为橙色 我希望在跟踪路线时执行类似 Nike 应用程
  • MKMapView 未在平移上调用 RegionDidChangeAnimated

    我有一个带有 MKMapView 的应用程序和每次地图更改位置 在 RegionDidChangeAnimated 中 时调用的代码 当应用程序最初加载时 在显式更新地图坐标的平移 滑动 捏合 点击和按钮上调用regionDidChange
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • iOS 7 MapKit 崩溃:[VKRasterOverlayTileSource invalidateRect:level:] 中的 EXC_BAD_ACCESS

    我仅在 iOS 7 上遇到无法重现的崩溃 我大量使用 MKOverlayRenderer 在地图上绘制形状 iOS 6 上不会发生此崩溃 任何与此相关的想法都会有用 Exception Type EXC BAD ACCESS Code KE
  • 选择 MapView 注释两次

    我的 iPhone 应用程序有一个地图视图 其中有大量位置可供用户选择 我希望他能够点击其中一个注释来显示其标注视图 然后再次实际选择它 问题是 didSelectAnnotationView 只被调用一次 那么如何检测已选择的注释的选择呢

随机推荐