1

SO全体とネット上に投稿されている次のコードを使用しました。4 インチの画面では問題なく動作しますが、何らかの理由で 5 インチの画面では必要な出力が得られません。

MKMapRect zoomRect = MKMapRectNull;
for (id <MKAnnotation> annotation in _mapView.annotations) {

    MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
    MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
    if (MKMapRectIsNull(zoomRect)) {
        zoomRect = pointRect;
    } else {
        zoomRect = MKMapRectUnion(zoomRect, pointRect);
    }


}

zoomRect = MKMapRectMake(zoomRect.origin.x - 40 * (zoomRect.size.width / _mapView.frame.size.width),
                         zoomRect.origin.y - 60 * (zoomRect.size.height / _mapView.frame.size.height),
                         zoomRect.size.width + 80 * (zoomRect.size.width / _mapView.frame.size.width),
                         zoomRect.size.height + 80 * (zoomRect.size.height / _mapView.frame.size.height));

[_mapView setVisibleMapRect:zoomRect
                   animated:NO];
4

2 に答える 2