我只是有一个问题,似乎无法在任何地方找到它。
我是iOS开发的新手,并尝试在我的应用程序中使用Google地图。
我通过他们给你的例子here。
#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里面
我失去了你吗?这两种方式都是图片。
所以在视图(或空白)内部我希望加载地图。
谢谢大家的帮助。
答案 0 :(得分:6)
所以你有一个GMSMapView。您可以在addSubview:
的界面中将一个视图作为另一个视图的子视图。如果我是你,我不会在loadView
中这样做。 viewDidLoad
是最早的好机会。
我认为你真正的问题是你已经领先于自己了。你试图在不知道视图如何工作,视图控制器如何工作等的情况下做到这一点。我建议你在深入了解之前学习iOS编程,然后才能全身心投入。否则你不知道你的代码(或谷歌的代码)甚至意味着什么。
答案 1 :(得分:4)
如果有人需要做类似的话,我找到了一个适合我的解决方案。
我刚刚使用了容器视图,然后创建了单独的UIViewController
类(其中google maps sdk code添加了一个地图部分),然后使用 {{1将其连接到我的主ViewController googleMapsView是我连接到主ViewController的容器视图。
答案 2 :(得分:4)
我做了同样的事情here。
只需通过界面构建器添加类型GMSMapView
的视图,然后在控制器中设置属性。
答案 3 :(得分: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];
}