菜鸟教程小白 发表于 2022-12-12 21:14:30

ios - 旋转 MKMapView


                                            <p><p>我有一个带有显示用户位置的 MKMapView 的工作应用程序。到目前为止,一切顺利:</p>

<pre><code>- (void)viewDidLoad {
   ...
   ;
   ;
}
</code></pre>

<p>现在,我允许界面旋转:</p>

<pre><code>- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations.
    return YES;
}
</code></pre>

<p>如果我现在将设备和中心转到用户位置</p>

<pre><code>   .coordinate animated:YES];
</code></pre>

<p>mapView 将按预期旋转,但用户位置不会居中,而是位于屏幕底部(与顶部的距离与纵向模式相同)。</p>

<p>不过,我希望它居中...... </p>

<p>有什么想法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>尝试在 <code>setAutoresizingMask:</code> 中包含高度,这样当 superView 在旋转时改变其高度时, mapView 的高度会自动改变。现在,只有宽度在调整大小,所以 map 中心的 y 位置不会改变。</p>

<p>所以这一行:</p>

<pre><code>;
</code></pre>

<p>应该是:</p>

<pre><code>[myMapView setAutoresizingMask:
    (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
</code></pre>

<p><br/>
此外,如果您将跟踪模式设置为 <code>MKUserTrackingModeFollow</code>( map 会自动执行此操作),则无需手动将 map 置于用户位置的中心。您可能已经尝试手动将其居中以解决高度问题,但修复自动调整蒙版应该消除显式居中的需要。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 旋转 MKMapView,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10865945/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10865945/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 旋转 MKMapView