• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 动态信息窗口大小 ios 谷歌地图

[复制链接]
菜鸟教程小白 发表于 2022-12-13 01:46:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在像这样在谷歌地图上创建自定义信息窗口:

NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed"InfoView" owner:self options:nil];
InfoView *mainView = [subviewArray objectAtIndex:0];
UIView *subview = mainView.subviews[0];
//setup content
return subview;

这样它工作正常,但我不能添加任何约束,因为它会填满整个屏幕并变成空白。所以我决定不使用自动布局。

我的内容是几个标签一个接一个。在同样的情况下,文本不能适合单行,然后标签框应该增加。同时,还必须增加整个 View 框架,下面的 View 必须适当偏移。我已经制定了一种方法来做到这一点,除了信息窗口 View 框架本身之外,一切都在变化。在日志中,我可以看到框架发生了变化,但在屏幕上,它具有原始大小,并且文本在它之外。

我什至尝试只更改信息窗口框架,但仍然没有效果 - 它根本没有改变。

我也试过调用 [subview layoutIfNeeded][subview layoutSubviews]

那么,如何制作具有动态大小的信息窗口?

编辑:

@Milan 要求的完整代码:

- (UIView *_Nullable) mapViewGMSMapView *)mapView markerInfoContents: (GMSMarker *)marker {
    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed"ortView" owner:self options:nil];
    PortView *mainView = [subviewArray objectAtIndex:0];
    UIView *subview = mainView.subviews[0];
    mainView.frame = CGRectMake(mainView.frame.origin.x, mainView.frame.origin.y, mainView.frame.size.width, mainView.frame.size.height + 40) //increase frame size doesn't work
    mainView.titleLabel.text = portSzukany.name;
    return subview;
}



Best Answer-推荐答案


您需要实现 GMSMapViewDelegate 并从以下方法返回信息 View :

- (UIView *GMS_NULLABLE_PTR)mapViewGMSMapView *)mapView markerInfoWindowGMSMarker *)marker;

根据对该方法的描述,“返回的 UIView 在任一维度上的边界不得大于 500 点。”

关于ios - 动态信息窗口大小 ios 谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44672663/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap