Черная полупрозрачная панель навигации + MKMapView -> Настройка центра карты не является визуально правильной - PullRequest
3 голосов
/ 01 марта 2012

У меня есть вид карты в навигационном контроллере под полупрозрачной черной навигацией, статус и панели поиска.

Фактическая высота карты включает область под этими столбцами.

Левая дополнительная кнопка + делает центр карты в центре.

Photo1 Photo2

Левое изображение находится перед тем, как карта центрируется по координатам булавки.

Правильный вариант, когда карта центрирована по координатам булавки.

Проблема в том, что центр должен быть центром видимой области карты, а не всей области карты. (что приводит к тому, что булавка не появляется в центре карты.

Есть ли какая-либо настройка смещения или границы, которую я могу сделать, чтобы представление карты было центрировано правильно?

1 Ответ

0 голосов
/ 01 марта 2012

Вы можете наложить прозрачный UIView (tView) для видимой области карты (под панелью навигации), получить его точку, рассчитать необходимое смещение и снова установитьRegion. (Я полагаю, вы используете setRegion для центрирования карты):

CGPoint currentPoint = [mapView convertCoordinate:myPin.coordinate toPointToView:self.view];
CGRect tFrame = [tView frame];
tFrame.origin.y = currentPoint.y - tFrame.size.height;
tFrame.origin.x = currentPoint.x - (tFrame.size.width/2);

MKCoordinateRegion newRegion = [mapView convertRect:tFrame toRegionFromView:self.view];
[mapView setRegion:newRegion animated:YES];

Вы должны дважды проверить tFrame, чтобы вы могли установить его с наилучшими значениями для вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...