2016-04-08 9 views
0

Теперь я работаю над старым проектом, клиент хочет добавить обновление в этот проект. Недавно я добавил один viewController для отображения mapview, но это отображение карты не может поместиться на экране, например, iphone6 ​​и т. Д. Это приложение использует авторезистировку для изменения размера разных видов. Я установил свойство autoresize для соответствия mapview на экране, которое я пробовал как программно, так и xib.But его не работает. Как я могу решить эту проблему? Пожалуйста, помогите мне.Как я могу сопоставить карту, используя Autoresizing в iOS?

_mapView.autoresizesSubviews = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

или

Autoresizing property for Mapview

enter image description here

enter image description here

+0

Вы пытались установить рамку с каркасом программно ?. Также проверьте, проверено ли свойство «Подвижность клипов» и «Авторезистировать Subview» для mapview. –

+0

Clip Subviews "и" Autoresize Subview "всегда проверяются. Я добавил mapview непосредственно в конструктор интерфейса не программно. – IKKA

+0

Попробуйте установить рамку mapview programatically. [YourMapView setFrame: self.view.bounds]; –

ответ

0

Вы должны использовать автоматическую раскладку и набор ограничений.

Auto раскладка по умолчанию теперь так, если вы все еще хотите работать с распорками и пружины необходимо выключить его из файла инспектор .xib:

turning off auto layout from file inspector

0

С помощью autoLayout не вариант, поскольку его старый проект и миграция - это огромная задача, я настоятельно рекомендую вам установить кадр для mapView через код.

Например, в соответствии с представленным скриншотом в представлении есть панель поиска, которая находится наверху, а mapView должен занимать все свободное пространство, которое осталось. Вы можете кодировать его следующим образом:

  1. Создание точек для mapView и searchBar
  2. Set Кадр из mapView как

    CGSize superViewFrameSize = self.view.bounds.size; 
    CGSize searchBarFrameSize = self.searchBar.bounds.size; 
    CGRect mapviewFrame = CGRect mapviewFrame = CGRectMake(0, searchBarFrameSize.height, superViewFrameSize.width, superViewFrameSize.height - searchBarFrameSize.height); 
    self.mapView.frame = mapviewFrame; 
    

В Кодексе размер superView и searchBar и удерживает его во временных переменных. Затем создайте переменную CGRect, чтобы удерживать новый кадр mapView. Поместите mapView ниже searchBar, установив его начало как высоту searchBar. Установите ширину mapView таким же, как у ее superView. Установите высоту mapView как уменьшенную высоту searchBar от ее superView.

Надеюсь, что это поможет :)