У меня есть MKMapView
, который отмечает определенный регион, используя MKPolygon
. Я хочу, чтобы карта имела минимальный коэффициент масштабирования, который находится внутри экрана mapView/screen, означает полностью видимый.MKMapView visibleMapRect не полностью виден
Для достижения этой цели я попытался следующие
MKPolygon *overlay;
[[self mapView] setVisibleMapRect:[overlay boundingMapRect] edgePadding:UIEdgeInsetsMake(16, 16, 16, 16) animated:YES];
К сожалению, мой MAPview не установлен весь прямоугольник видимым. Прямой заполняет карту вместо фитинг.
Это то, что мне нужно против того, что я получил:
против
Как я могу достичь своей цели?
Это не может быть фактический код (наложение не объявлен как указатель, это не инициализирован, boundingRect должен быть boundingMapRect, и т.д.). В реальном коде вы уверены, что оверлей указывает на правый? Есть ли еще один вызов setRegion или setVisibleMapRect после этого? Кадр MKMapView установлен на экран или выходит за пределы экрана? Похоже, высота карты правильная, но ширина может быть слишком широкой. – Anna
@Anna: Это единственный и единственный оверлей на mapView, и есть только один вызов '-setVisibleMapRect:'. Я написал несколько строк в методе '-viewDidLoad', чтобы увидеть, как это работает. Я исправил опечатку с 'boundingMapRect' и отсутствующим указателем –
Спасибо, @Anna, вы дали мне правильную идею, см. Мой ответ ниже. У меня еще мало опыта с MKMapView, так что я не видел его =) –