Google地图信息窗口根据内部内容resize
我使用这种方法创build自定义信息窗口- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
基于UIStoryboard
使用Autolayout。 我预计部分内部视图将会因为实际的文本信息被接收而resize,信息窗口的最终大小将与IB的视图不同。
其实,结果我的InfoWindow视图尝试全屏大小,没有什么帮助解决这个问题。 玩autoresizingMask
不会改变任何东西,与设置Hugging Priority
相同的结果。 唯一的办法是设置一个固定大小的约束,我已经做了这个宽度。 但是对于高度,我需要根据内部内容的实际大小dynamic计算大小。
更新:从故事板添加屏幕截图
更新2 :带有2个滚动视图的示例testing,使用重写的方法intrinsicContentSize
:
- (CGSize)intrinsicContentSize { [self layoutIfNeeded]; return self.contentSize; }
内部UIScrollView通过所有4边连接到基本滚动视图
内部UIScrollView只附加在顶部和左侧 示例testing视图层次结构
正如你所看到的全屏幕根UIScrollView
(蓝色边框)仍然存在。 而内部的UIScrollView
(绿色)对它没有影响。 它仍然有全屏幕的大小
不幸的是,我发现的唯一方法是使用明确的框架,这需要手动计算,并且完全不使用Google Maps InfoWindow的Autolayout 。
我做了几个testing,以validation如何显示相同的视图作为UIWindow
子视图,并发现行为是不同的。