2013-03-09 4 views
4

Я попытался использовать код из GoogleMapsSDKDemos, чтобы изменить размер изображения на меньший прямоугольник на экране, но он не имеет никакого эффекта. Вот мой код:Изменение размера Карт Google MapView iOS

mapView = [[GMSMapView alloc] initWithFrame: CGRectZero]; mapView.camera = [GMSCameraPosition cameraWithLatitude: 38.98549782690282 долгота: -76.94636067188021 zoom: 17];

self.view = [[UIView alloc] initWithFrame:CGRectZero]; 
mapView.autoresizingMask = 
UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 
mapView.frame = self.view.frame; 
mapView.clipsToBounds = YES; 
mapView.myLocationEnabled = YES; 
mapView.settings.tiltGestures = NO; 
mapView.settings.zoomGestures = NO; 

mapView.frame = CGRectMake(0,0, 10, 25); 

[self.view addSubview:self.mapView]; 

Это второй к последней строке, казалось бы, должны ограничить MapView только небольшая площадь, но она по-прежнему занимает весь экран.

ответ

3

Я хотел бы попробовать что-то вроде этого:

GMSCameraPosition* camera = [GMSCameraPosition 
    cameraWithLatitude: 38.98549782690282 
    longitude: -76.94636067188021 
    zoom: 17]; 
GMSMapView* mapView = 
    [GMSMapView mapWithFrame: GRectMake(0,0, 10, 25) camera: camera]; 

Обратите внимание, что комментарии по GMSMapView класса GMSMapView.h говорят:

Этот класс не должен быть instatiated напрямую, вместо этого он должен быть создан с [GMSMapServices mapWithFrame: camera:]

+0

Я просто пробовал это, и он не работал, по-видимому, мой файл GMSServices.h не имеет этого метода mapWithFrame. Я вернулся и проверил API, и если вы посмотрите [здесь] (https://developers.google.com/maps/documentation/ios/map#add_a_map), похоже, он использует класс GMMapView? Я не уверен, что вы сказали бы, но xcode не может найти метод mapWithFrame в GMSServices (и я тоже не могу) – CSStudent

+0

Ах да, извините, я шел из этого комментария в заголовке, а не из своего собственного код. Вам нужно вызвать 'mapWithFrame' в' GMSMapView', а не 'GMSServices' (я думаю, что комментарий в заголовке неверен). Я обновил свой код выше. –

+0

Это, похоже, не работает для меня, вы сами это пробовали? У меня есть 'smallMap = [GMSMapView mapWithFrame: CGRectMake (0,0, 10, 25) camera: camera];' где smallmap - это GMMapView в раскадровке, и он по-прежнему занимает весь экран. – CSStudent

1

Попробуйте добавить карту к p вид:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:latitude 
                 longitude:longitude 
                  zoom:10]; 



mapView_ = [GMSMapView mapWithFrame:CGRectMake(0,0, width, height) camera:camera]; 
mapView_.delegate = self; 
mapView_.myLocationEnabled = YES; 
[self.view addSubview:mapView_]; 
Смежные вопросы