将MKUserTrackingBarButtonItem移动到导航栏上的右侧

时间:2015-02-26 10:09:29

标签: ios objective-c mapkit uinavigationitem rightbarbuttonitem

有什么方法可以在MKUserTrackingBarButtonItem附加到navigationItem.rightBarButtonItem时移动它? 现在它看起来像这样:

my image

我希望它看起来更像Apple的地图(编辑:更接近边缘):

enter image description here

有办法做到这一点吗?我没有运气就尝试过ImageInsets。

编辑:以下是viewDidLoad中的代码

MKUserTrackingBarButtonItem *trackingButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView.mapView];
trackingButton.imageInsets = UIEdgeInsetsMake( 0, -10, 0, 0 );

self.navigationItem.rightBarButtonItem = trackingButton;

2 个答案:

答案 0 :(得分:1)

button1.imageEdgeInsets = UIEdgeInsetsMake(-4, 0, 0, 0);

答案在这里:Can I change the position of navigationbar item?

请注意,您更改了要分配给rightBarButtonItem的按钮的插图,而不是右边的BarButtonItem。

答案 1 :(得分:1)

好的,我根据这个问题的接受答案找到了一个有效的解决方案:How to Edit Empty Spaces of Left, Right UIBarButtonItem in UINavigationBar [iOS 7]

所以在我的代码中它看起来像这个

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
                                initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                         target:nil action:nil];
negativeSpacer.width = -7.5;

MKUserTrackingBarButtonItem *trackingButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView.mapView];

[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:negativeSpacer, trackingButton, nil] animated:NO];

虽然它对iPhone 6 Plus没有预期效果,但它现在是最好的解决方案。感谢大家的帮助。