我想在 map View 上显示一个标签,但该标签仅应在用户缩放到特定缩放级别时显示。所以我想执行以下操作:
if (mapView.camera.altitude >= 5) {
//display label here
}
我喜欢它在用户每次缩放时检查并更新缩放级别。所以我认为 ViewDidAppear 将是这段代码的最佳位置。
提前致谢。
最佳答案
您应该通过下面的代码处理它。
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
NSUInteger zoomLevel = MAXIMUM_ZOOM; // MAXIMUM_ZOOM is 20 with MapKit
MKZoomScale zoomScale = mapView.visibleMapRect.size.width / mapView.frame.size.width; //MKZoomScale is just a CGFloat typedef
double zoomExponent = log2(zoomScale);
zoomLevel = (NSUInteger)(MAXIMUM_ZOOM - ceil(zoomExponent));
if(zoomLevel > 5 && labelNotAdded)
{
//Add the label
}
else
{
//Remove the label
}
}
关于ios - 如何以特定缩放级别在 MKMapView 上显示 UILabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42082351/