菜鸟教程小白 发表于 2022-12-12 15:28:30

ios - Google map 信息窗口根据内部内容调整大小


                                            <p><p>我正在使用此方法创建自定义信息窗口 <code>- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker</code> 基于 <code>UIStoryboard</code>使用自动布局。我预计一些内部 View 会因为接收到实际的文本信息而调整大小,并且信息窗口的最终大小将与 IB 的 View 不同。 </p>

<p>实际上,结果是我的 InfoWindowView 尝试全屏显示,没有任何方法可以解决这个问题。使用 <code>autoresizingMask</code> 不会改变任何东西,与设置 <code>Hugging Priority</code> 的结果相同。唯一的方法是设置一个固定的大小约束,我已经为宽度做了这个。但是对于高度,我需要根据内部内容的实际大小动态计算大小。</p>

<p><strong>更新</strong>:添加了 Storyboard 的屏幕截图</p>

<p> <img src="/image/vxUBc.png" alt="enter image description here"/> </p>

<p> <img src="/image/Xc7Lz.png" alt="enter image description here"/> </p>

<p><strong>更新 2</strong>:具有 2 个 ScrollView 的示例测试,具有覆盖的方法 <code>intrinsicContentSize</code>:</p>

<pre><code>- (CGSize)intrinsicContentSize {
    ;
    return self.contentSize;
}
</code></pre>

<p>内部 UIScrollView 通过所有 4 个边附加到基本 ScrollView
<img src="/image/cqQA3.png" alt="Internal UIScrollView attached via all 4 sides to base scrollview"/> </p>

<p>内部 UIScrollView 仅附加到顶部和左侧
<img src="/image/gqaEs.png" alt="internal UIScrollView attached to the top and left only"/>
示例测试 View 层次结构
<img src="/image/OmGO8.png" alt="Sample test view hierarchy"/> </p>

<p>如您所见,全屏根 <code>UIScrollView</code>(蓝色边框)仍然存在。而内部的<code>UIScrollView</code>(绿色)对其没有影响。它仍然具有全屏尺寸</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>不幸的是,我发现的唯一方法是使用显式框架,这需要手动计算并且<strong>根本不要将 Autolayout 与 Google Maps InfoWindow 一起使用</strong>。 </p>

<p>我做了几个测试来验证相同的 View 如何显示为 <code>UIWindow</code> 的 subview ,并发现行为是不同的。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Googlemap 信息窗口根据内部内容调整大小,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/30643740/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/30643740/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Google map 信息窗口根据内部内容调整大小