gpt4 book ai didi

ios - 带导航栏的 MKMapView 内容插入

转载 作者:技术小花猫 更新时间:2023-10-29 10:27:07 24 4
gpt4 key购买 nike

我在将 MKMapView 放置在带有导航栏的 View 中时遇到了一个奇怪的问题。在相同情况下给定一个 UIScrollView,其宽度、高度和中心被限制在它的 super View ( View Controller 的 view 对象)中,如果 Controller 的 automaticallyAdjustsScrollViewInsets 将调整 insets属性设置为 YES,如果设置为 NO,则不会。那太棒了。我在任何地方都找不到这个记录,但 map View 似乎做同样的事情,但不可能禁用它。设置 automaticallyAdjustsScrollViewInsets 无效。

简而言之(ish):

在下图中,无论导航栏如何,后面的小方 block 都位于 View 的中央。 map View 也被限制为 View 的大小(它延伸到导航栏后面)。 map View 的位置设置为当前位置(也用蓝色圆圈表示),所以我希望它们匹配,但它们相差状态栏和导航栏组合高度的一半。

是否有对此行为的解释,以及使其按预期工作的方法?

Screenshot of MKMapView acting a fool

这很奇怪,因为 MKMapView 不是 UIScrollView 的子类,但在这种情况下它的行为就像一个。这并非完全不合理,但我希望自动调整插图能够在 map View 和 ScrollView 上始终如一地工作。

解决方法

像这样糟糕的事情会“解决问题”:

MKCoordinateRegion region = MKCoordinateRegionMake(self.coordinate, MKCoordinateSpanMake(0.008, 0.008));
MKMapRect mapRect = MKMapRectForCoordinateRegion(region);
[self.mapView setVisibleMapRect:mapRect edgePadding:UIEdgeInsetsMake(0, 0, 64, 0) animated:YES];

要么也调整底部插图,要么在顶部添加一个负插图让事情排成一行,但是如果 map View 的这种行为发生变化,或者如果 View Controller 没有导航栏,它就会中断,或者如果有强风。这也削弱了我从 map View 中提取正确坐标的信心。

最佳答案

MKMapView 确实位于导航栏下方,但会自动使用外壳 View Controller 的 topLayoutGuide 将注释和罗盘 View 等从其下方向下移动。

您应该确保您自己的 View 在其自动布局代码中考虑到这一点。

关于ios - 带导航栏的 MKMapView 内容插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com