如何为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_]; }