UIScrollView
的 contentInset
属性非常优秀,可以告诉视图哪一部分在屏幕上可见。我有一个被半透明视图覆盖了一部分的 MKMapView
。我希望在这个视图下方能够看到地图。我需要在地图上显示几个注释,并且想使用 -setRegion:animated:
缩放到这些注释,但是地图视图不考虑它被部分遮盖,因此我的某些注释将被透明视图遮挡。
是否有办法告诉地图计算并使用 contentInset
呢?
更新:我已经尝试了以下方法:
- (MKMapRect)mapRectForAnnotations
{
if (self.trafik) {
MKMapPoint point = MKMapPointForCoordinate(self.trafik.coordinate);
MKMapPoint deltaPoint;
if (self.map.userLocation &&
self.map.userLocation.coordinate.longitude != 0) {
MKCoordinateSpan delta = MKCoordinateSpanMake(fabsf(self.trafik.coordinate.latitude-self.map.userLocation.coordinate.latitude),
fabsf(self.trafik.coordinate.longitude-self.map.userLocation.coordinate.longitude));
deltaPoint = MKMapPointForCoordinate(CLLocationCoordinate2DMake(delta.latitudeDelta, delta.longitudeDelta));
} else {
deltaPoint = MKMapPointForCoordinate(CLLocationCoordinate2DMake(0.01, 0.01));
}
return MKMapRectMake(point.x, point.y, deltaPoint.x, deltaPoint.y);
} else {
return MKMapRectNull;
}
}
MKMapRect
的方法,但是它一定有错误,因为我总是得到一个完整的世界地图。 :( - gklka