如何为mapview设置框架 – 在谷歌GMSMap为iOS6

我正在尝试在iOS 6的Google Map View中加载地点。 如何设置地图的框架? 目前它是全屏

-(void)loadView { GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.00989 longitude:76.316142 zoom:15]; mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera]; self.view = mapView_; } 

我试图通过在当前视图内创build一个新的(小)视图,并添加地图,但在那个时候页面没有被加载。它显示一个完整的黑屏

  -(void)loadView { GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.00989 longitude:76.316142 zoom:15]; mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera]; [self.view Addsubview:newView]; self.newView = mapView_; // I also tried like this - [self.newView Addsubview:mapView_; } 

你可以尝试…什么是为我工作:)

 //header file ... @property (nonatomic, weak) IBOutlet GMSMapView *mapView; @property (weak, nonatomic) IBOutlet UIView *subview; //viewForMap ... 

实施文件

 GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.8683 longitude:76.2086 zoom:6 bearing:0 viewingAngle:0 ]; self.mapView = [GMSMapView mapWithFrame:_subview.bounds camera:camera]; [_subview addSubview:_mapView]; 

这很难说如果你的问题是添加地图视图或上游的东西。

你有没有在-viewDidLoad中设置断点以确保它被调用?

检查newView的界限,以确保它是你所期望的。 newView是否可见? 它是self.view的子视图吗?

当你试图确保你的视图是你期望的地方时,你可以使用的一个技巧是将背景颜色设置为明显的颜色,比如红色,然后你可以在屏幕上清楚地看到是否你期望的。 如果你这样做,并没有看到一个红色的框,那么你的问题是不是地图,它是在你没有向我们显示的代码的上游。

祝你好运。

使用所需的框架尺寸创buildCGRect,并使用方法mapWithFrame:设置MapView框架mapWithFrame:然后添加mapview作为mapWithFrame:视图。 下面是解释所有的代码。 CGRect fr= CGRectMake(0, 44, 768, 960); mapView_ = [GMSMapView mapWithFrame:fr camera:camera]; mapView_.myLocationEnabled = YES; [self.view addSubview:mapView_];

当您使用xib时,我不认为loadView被调用。 我还没有尝试使用带有xib的iOS版Google地图SDK,因为我以编程方式创build了所有视图。

也许你可以在viewDidLoad添加你的地图视图? 举个例子:

 - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.00989 longitude:76.316142 zoom:15]; mapView_ = [GMSMapView mapWithFrame: CGRectMake( 0, 0, self.newView.frame.size.width, self.newView.frame.size.height) camera: camera]; [self.newView addSubview: mapView_]; } 

你需要这样做

  -(void)loadView { GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.00989 longitude:76.316142 zoom:15]; mapView_ = [GMSMapView mapWithFrame:self.newView.bounds camera:camera]; [self.view addSubview:newView]; [self.newView addSubview:mapView_]; }