Ant*_*tox 13 objective-c mapkit mkmapview ios
我遇到了一个奇怪的问题,MKMapView放置在带导航栏的视图中.给定UIScrollView在相同的情况下,其宽度,高度和中心被约束到它的superview(视图控制器的view对象),如果控制器的automaticallyAdjustsScrollViewInsets属性设置为YES,则将调整insets ,而不是设置为NO.那很棒.我无法在任何地方找到此文档,但地图视图似乎也做同样的事情,但是无法禁用它.设置automaticallyAdjustsScrollViewInsets无效.
简而言之(ish):
在下图中,无论导航栏如何,小后方都在视图中居中.地图视图也被限制为视图的大小(它延伸到导航栏后面).地图视图的位置设定为当前位置(也由蓝色圆圈表示),所以我希望他们匹配,但是他们是关闭的状态栏和导航栏一半的组合高度.
是否有对此行为的解释,以及使其按预期工作的方法?

这很奇怪,因为MKMapView不是UIScrollView的子类,但在这种情况下它的行为类似于一个.这并非完全不合理,但我希望自动调整插图在地图视图和滚动视图上一致地工作.
像这样糟糕的事情会"解决问题":
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];
Run Code Online (Sandbox Code Playgroud)
既可以调整底部插图,也可以在顶部添加负插图使得事物排成一行,但是如果地图视图的这种行为发生变化,或者如果视图控制器没有导航栏,或者如果有一阵寒风.它也削弱了我从地图视图中拉回正确坐标的信心.
MKMapView确实位于导航栏下方,但会自动使用外壳视图控制器topLayoutGuide从其下方移动注释和指南针视图等.
您应该确保自己的视图在自动布局代码中考虑到这一点.
Mik*_*ike -1
如果你看一下这个,你会发现地图视图很可能不像你想象的那样位于导航栏下方。它位于导航栏底部和超级视图底部之间。
另一方面,导航栏默认是半透明的,因此如果地图视图确实位于导航栏下方,假设您没有禁用默认导航栏行为,您将能够看到它。

| 归档时间: |
|
| 查看次数: |
2590 次 |
| 最近记录: |