【问题标题】:Move MKUserTrackingBarButtonItem to the right on Navigation Bar在导航栏上将 MKUserTrackingBarButtonItem 移动到右侧
【发布时间】:2015-02-26 10:09:28
【问题描述】:

当 MKUserTrackingBarButtonItem 附加到 navigationItem.rightBarButtonItem 时,有没有办法移动它? 现在它看起来像这样:

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

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

编辑:这是viewDidLoad中的代码

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

self.navigationItem.rightBarButtonItem = trackingButton;

【问题讨论】:

  • 抱歉,原帖已编辑。

标签: ios objective-c mapkit uinavigationitem rightbarbuttonitem


【解决方案1】:
button1.imageEdgeInsets = UIEdgeInsetsMake(-4, 0, 0, 0);

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

请注意,您更改的是要分配给 rightBarButtonItem 的按钮的插图,而不是 rightBarButtonItem 本身。

【讨论】:

  • 没有属性 imageEdgeInsets 只是 imageInsets 我已经尝试了几件事,但项目没有移动..
  • 已编辑原帖。
  • 试试这个:[trackingButton setBackgroundVerticalPositionAdjustment:-10 forBarMetrics:UIBarMetricsDefault];
  • 试过了,没有任何改变,这个特殊的按钮一点也没动。
【解决方案2】:

好的,我找到了一个基于这个问题的公认答案的可行解决方案: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 上无法正常工作,但它是目前最好的解决方案。感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2018-01-28
    • 1970-01-01
    • 2023-02-14
    相关资源
    最近更新 更多