5

我只是有一个问题,似乎无法在任何地方找到它。

我是 iOS 开发的新手,并尝试在我的应用程序中使用 Google 地图。

我浏览了他们在这里给你的例子。

    #import "DemoViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@implementation DemoViewController {
  GMSMapView *mapView_;
}

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

@end

但是正如您所看到的,它们设置self.view = mapView_;并且 UIView 类没有视图功能。

我希望地图位于另一个 ViewController 中的 UIView 中

我还没有失去你吗?无论哪种方式,这里都是一张照片。 在此处输入图像描述

因此,在视图(或空白)内部,我希望加载地图。

谢谢你们的帮助。

4

4 回答 4

6

所以你有一个 GMSMapView。并且您可以在界面中将一个视图作为另一个视图的子视图addSubview:loadView不过,如果我是你,我不会这样做。viewDidLoad是最早的好机会。

我认为你真正的问题是你领先于自己。在不知道视图如何工作、视图控制器如何工作等的情况下尝试执行此操作。我建议您在四足投入之前深呼吸并了解 iOS 编程。否则你甚至不知道你的代码(或谷歌的代码)是什么意思。

于 2013-03-09T02:55:41.857 回答
4

我在这里做了完全相同的事情。

只需GMSMapView通过界面生成器添加类型视图,然后在控制器中设置属性。

于 2013-03-17T19:04:53.690 回答
4

如果有人需要做类似的事情,我找到了一个适合我的解决方案。

我只是使用了一个容器视图,然后创建了一个单独UIViewController的类(其中有google maps sdk 代码添加了一个地图部分),然后通过使用[self.view addSubview:googleMapsView];googleMapsView 作为我连接到主 ViewController 的容器视图将它连接到我的主 ViewController。

于 2013-03-16T01:56:24.247 回答
1
Please try below code.
@property (strong, nonatomic) IBOutlet GMSMapView *mapView;
-(void)addAllPinsOnMapView
{
arrMapPin=[[NSMutableArray alloc] init];
for(int i = 0; i < arrOfferList.count; i++)
{
    GMSCameraPosition *cameraPosition=[GMSCameraPosition cameraWithLatitude:[[[arrOfferList objectAtIndex:i] objectForKey:@"latitude"] floatValue] longitude:[[[arrOfferList objectAtIndex:i] objectForKey:@"longitude"] floatValue] zoom:12];
    //    mapView = [GMSMapView mapWithFrame:CGRectZero camera:cameraPosition];
    _mapView.camera = cameraPosition;
    _mapView.myLocationEnabled=YES;

    GMSMarker *marker=[[GMSMarker alloc]init];
    marker.position=CLLocationCoordinate2DMake([[[arrOfferList objectAtIndex:i] objectForKey:@"latitude"] floatValue], [[[arrOfferList objectAtIndex:i] objectForKey:@"longitude"] floatValue]);
    marker.title = [[arrOfferList objectAtIndex:i] objectForKey:@"business"];
    marker.map=_mapView;
    _mapView.delegate = self;
}
}
- (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:
(GMSMarker *)marker {
NSPredicate *result;
result=[NSPredicate predicateWithFormat:@"business CONTAINS[c] %@",marker.title];
NSArray * array = [arrOfferList filteredArrayUsingPredicate:result];
OfferDetailsViewController *objOfferDetailsViewController = [[OfferDetailsViewController alloc]init];
objOfferDetailsViewController.dictOfferDetails=[array objectAtIndex:0];
[self.navigationController pushViewController:objOfferDetailsViewController animated:YES];
}
- (IBAction)btnLocateMe:(UIButton *)sender
{
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:[[[AppDelegate initAppDelegate].DictLocation objectForKey:@"Latitude"] floatValue] longitude:[[[AppDelegate initAppDelegate].DictLocation objectForKey:@"Longitude"] floatValue] zoom:14];
[_mapView animateToCameraPosition:camera];
}
于 2017-10-23T11:12:57.137 回答