Ios 谷歌地图信息窗口';s根据内部内容调整大小

Ios 谷歌地图信息窗口';s根据内部内容调整大小,ios,objective-c,google-maps,autolayout,Ios,Objective C,Google Maps,Autolayout,我正在使用此方法创建自定义信息窗口-(UIView*)mapView:(GMSMapView*)mapView markerInfoWindow:(GMSMarker*)marker,该方法基于使用Autolayout的UIStoryboard。我预计一些内部视图将被调整大小,因为实际的文本信息将被接收,信息窗口的最终大小将与IB的视图不同 事实上,结果我的InfoWindow视图尝试全屏大小,没有任何帮助来解决这个问题。玩autoresizingMask不会改变任何东西,设置Hugging P

我正在使用此方法创建自定义信息窗口
-(UIView*)mapView:(GMSMapView*)mapView markerInfoWindow:(GMSMarker*)marker
,该方法基于使用Autolayout的
UIStoryboard
。我预计一些内部视图将被调整大小,因为实际的文本信息将被接收,信息窗口的最终大小将与IB的视图不同

事实上,结果我的InfoWindow视图尝试全屏大小,没有任何帮助来解决这个问题。玩
autoresizingMask
不会改变任何东西,设置
Hugging Priority
的结果相同。唯一的方法是设置一个固定大小的约束,我已经为宽度设置了这个约束。但对于高度,我需要根据内部内容的实际大小动态计算大小

更新:添加了故事板中的屏幕截图

更新2:使用覆盖方法
intrinsicContentSize
,使用2个滚动视图进行样本测试:

- (CGSize)intrinsicContentSize {
    [self layoutIfNeeded];
    return self.contentSize;
}
内部UIScrollView通过四个侧面连接到基本滚动视图

内部UIScrollView仅连接到顶部和左侧 示例测试视图层次结构


如您所见,全屏root
UIScrollView
(蓝色边框)仍然存在。内部
UIScrollView
(绿色)对其没有影响。它仍然具有全屏大小

不幸的是,我发现的唯一方法是使用显式框架,这需要手动计算,不要在Google Maps InfoWindow中使用自动布局


我做了两个测试来验证同一个视图如何显示为
UIWindow
的子视图,发现行为不同。

你能发布你的代码/情节提要截图吗?对于高度,你需要设置标签和
UIView
之间的
垂直间距(包括顶部和底部)。如果在 UIVIEW/COD>中有太多的标签,你应该考虑使用<代码> UISCRelVIEW 。ZTAN,好主意,不幸的是解决不了这个问题。请参阅更新2 Interest discovery。我怀疑这可能是我在使用标记本身的自定义UIView时遇到的问题的根源。现在,我将按照您的建议手动调整大小。