地图视图用户位置注释中心由导航栏移动

时间:2014-08-11 02:08:00

标签: ios uinavigationcontroller mapkit navigationbar

我不确定这是否是MapKit中的错误,或者我只是做了一些明显错误的事情但我在尝试使用户位置居中时发现了一个问题,同时还使用了导航控制器中的导航栏。我的目标是拥有一个透明的导航栏,我实现了这样的目标:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                                              forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;

并且还具有位于电话屏幕中间的用户位置注释(注意,不是视图的中间,因为它与导航栏的底部有关)。我已经尝试了忽略滚动插入并将edgesForExtendedLayout属性设置为所有不同值的所有内容。我现在拥有的是这样的:

enter image description here

如您所见,当地图视图跨越导航栏下方时,用户位置不会尊重真正的中心并向下移动。最终应该看起来像这样:

enter image description here

其他人认为这是可修复的,还是我应该提交错误报告?

1 个答案:

答案 0 :(得分:0)

它有点像黑客,但您可以将日历的view.frame.origin.y设置为负值以抵消系统的偏移量。

编辑: https://developer.apple.com/library/prerelease/mac/documentation/MapKit/Reference/MKAnnotationView_Class/#//apple_ref/occ/instp/MKAnnotationView/centerOffset

MKAnnotationView类的

@property(非原子)CGPoint centerOffset

讨论 默认情况下,注释视图的中心点位于关联注释的坐标点。您可以根据需要使用此属性重新定位注释视图。该x和y偏移值以像素为单位测量。正偏移值向下和向右移动注释视图,而负值向上和向左移动。