1

我正在使用MKUserTrackingBarButtonItem找到MKMapView。我以编程方式将其作为navigationItem添加到导航控制器中。我的问题是:是否可以自定义MKUserTrackingBarButtonItem?

  1. 我可以自定义MKUserTrackingBarButtonItem吗? 例如:我的导航控制器有蓝色背景,我需要设置我的MKUserTrackingBarButtonItem外观符合导航控制器。相反,它显示了箭头周围的白色方块。我会改变这一点。
  2. 是否可以从导航控制器中移动我的MKUserTrackingBarButtonItem并将其直接放置在我的地图上?

感谢

回答

-1

这将动画的MapView返回给用户的当前位置。您可以从您创建的任何自定义按钮调用此函数。

@IBAction func resetMapCurrentLocation(sender: AnyObject) { 
    mapView.userTrackingMode = RMUserTrackingModeFollow 
} 
1

从我可以告诉你,你有限的能力来定制用户跟踪按钮。你可以改变颜色。为了让按钮脱离导航栏,您必须将UIToolbar添加到您的mapView中,设置工具栏的框架大小,使其显示在您的首选位置,然后将mkusertrackingbutton作为项目添加到工具栏,并使用灵活的空格以适当的方式添加,以便正确对齐按钮。

这里是我是如何实现它(至今):

func setupUserTrackingButton() { 
     let trackingButton: MKUserTrackingBarButtonItem = MKUserTrackingBarButtonItem.init(mapView: mapView) 
     trackingButton.customView?.tintColor = UIColor.black 
     trackingButton.style = UIBarButtonItemStyle.plain 
     trackingButton.customView?.size = CGSize(width: 50, height: 50) 
     let originPoint: CGPoint = CGPoint(x: mapView.width-70,y: mapView.height-85) 
     let lighterGreyColor: UIColor = UIColor(colorLiteralRed: 125, green: 125, blue: 125, alpha: 1.0) 

//need to implement this rounded view in order to get the box to look consistent with the mkusertracking button API 
     let roundedSquare: UIView = UIView(frame: CGRect(origin: originPoint, size: CGSize(width: 50, height: 50))) 
     roundedSquare.backgroundColor = lighterGreyColor 
     roundedSquare.layer.cornerRadius = 5 
     roundedSquare.layer.masksToBounds = true 

     let toolBarFrame = CGRect(origin: CGPoint(x: 3, y: 3) , size: CGSize(width: 44, height: 44)) 
//You may have to subclass toolbar in order to get the right coloring 
     let toolbar = UIToolbar.init(frame: toolBarFrame) 
     let flex: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) 
     toolbar.items = [flex, trackingButton, flex] 

     roundedSquare.addSubview(toolbar) 
     mapView.addSubview(roundedSquare) 

} 

否则,你可能有子类的按钮,基本上建立在其他功能,包括核心图形动画,这将是一个工作位。 希望这有助于。

相关问题