gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:17:02 29 4
gpt4 key购买 nike

Resize MKAnnotationView Image When map zooms in and out?此方法在iOS5上成功,在iOS6上失败。

我直接更改了 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 建议调整注释 View 的 .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;

关于mkmapview - 如何在 iOS6 上调整 MKAnnotationView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644970/

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