gpt4 book ai didi

ios - 无法将谷歌地图 GMSMapView 放在主视图的 subview 中?

转载 作者:IT王子 更新时间:2023-10-29 07:40:12 27 4
gpt4 key购买 nike

我正在为这个问题苦苦挣扎!我想将谷歌地图 GMSMapView 添加到 UIView 中,它只是我的 ViewController 的主要 UIView 的一部分>.

它应该很简单...我用 Storyboard创建了一个我想要大小的 UIView 并将其放在主 UIView 中。

接口(interface)文件的片段:

@interface MapViewController : UIViewController <CLLocationManagerDelegate>

@property(nonatomic) IBOutlet GMSMapView *mapView;

在主 UIView 中与此 UIView 链接的 mapView。

我在实现中做了什么:

@synthesize mapView = _mapView;

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
longitude:151.2086
zoom:10];
_mapView = [GMSMapView mapWithFrame:_mapView.bounds camera:camera];
_mapView.myLocationEnabled = YES;

}

这应该行得通,不是吗?我得到的是我的内部 UIView 是空的。

如果我按照谷歌的入门指南 Google Map Integration Document 实例化 map ,它可以工作,但它将 map 分配给 MAIN UIView,那是另一回事。

我什至尝试将 Storyboard 中的 mapView 类从 UIView 更改为 GMSMapView。 map 显示在内部 View 中,但它以一种奇怪的方式初始化

  1. 系统抛出错误提示

"Failed to make complete frame buffer"

并且大大减慢了 View 的加载速度(在模拟器上需要 2-3 秒)

  1. viewDidLoad 方法中完成的任何相机更改中 map 都没有响应。

有什么建议吗?

我在 StackOverflow 上阅读了一些帖子,但找不到有效的解决方案 :(

最佳答案

根据其他答案,这里有三种实际可行的方法。

  1. 在 XIB 上放置一个 View ,并在 XIB 构建器中将其类更改为 GMSMapView。请参阅下面的 *map1。或者……
  2. 全部编码。添加 map 作为主视图的 subview 。请参阅下面的 *map2。或者……
  3. 将 map 添加为 XIB 中已有的另一个带有导出的 subview 的 subview 。 *下面的 map3。

.h

@interface GPViewController : UIViewController
@property (strong, nonatomic) IBOutlet GMSMapView *map1;
@property (strong, nonatomic) IBOutlet UIView *plainViewOnXIBHoldsMap3;
@end

.m

- (void)viewDidLoad{
[super viewDidLoad];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.0
longitude:151.20
zoom:6];

/* Option 1. view on XIB is class GSMMapView */
self.map1.camera = camera;

/* Option 2. add a map as a subview */
GMSMapView *map2 = [GMSMapView mapWithFrame:CGRectMake(0, 0, 100, 100) camera:camera];
[self.view addSubview:map2];

/* Option 3. add a map to a subview already on the XIB */
GMSMapView *map3 = [GMSMapView mapWithFrame:self.plainViewOnXIBHoldsMap3.bounds camera:camera];
[self.plainViewOnXIBHoldsMap addSubview:map3];
}

关于ios - 无法将谷歌地图 GMSMapView 放在主视图的 subview 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15417811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com