用参数调用方法

时间:2011-04-11 13:17:18

标签: ios mapkit

我正在使用MapKit框架,我想问你一些事情:

+ (NSUInteger)zoomLevelForMapRect:(MKMapRect)mRect withMapViewSizeInPixels:(CGSize)viewSizeInPixels
{
    NSUInteger zoomLevel = MAXIMUM_ZOOM; // MAXIMUM_ZOOM is 20 with MapKit
    MKZoomScale zoomScale = mRect.size.width / viewSizeInPixels.width; //MKZoomScale is just a CGFloat typedef
    double zoomExponent = log2(zoomScale);
    zoomLevel = (NSUInteger)(MAXIMUM_ZOOM - ceil(zoomExponent));
    return zoomLevel;
}

这个方法..我怎么知道mRectviewSizeInPixels参数的值才能调用它?提前thx:)

1 个答案:

答案 0 :(得分:1)

地图视图的当前MKMapRect是visibleMapRect属性,视图大小将在frame.size中(因为MKMapView是UIView的子类),因此可以使用以下内容调用该方法:

NSUInteger zoomLevel = [UtilityClass 
                           zoomLevelForMapRect:mapView.visibleMapRect 
                           withMapViewSizeInPixels:mapView.frame.size];

UtilityClass是该方法所在的类,并将mapView替换为实际命名的地图视图。

顺便说一句,MapKit Framework ReferenceLocation Awareness Programming Guide值得一看。