ios - 使用 MapKit 将 View 集中到用户位置的按钮

标签 ios swift mapkit

MapKit 中是否有专门的按钮将相机置于用户位置的中心?还是我必须手动创建按钮并切换 mapView.showsUserLocation = true

最佳答案

这种方式运行良好(Swift),您可以自定义按钮:

class YourViewController{
   ...
   @IBOutlet weak var mapView:MKMapView
   ...

   override func viewDidLoad() {
      super.viewDidLoad()
      ...
      addMapTrackingButton()
   }

   func addMapTrackingButton(){
      let image = UIImage(named: "trackme") as UIImage?
      let button   = UIButton(type: UIButtonType.System) as UIButton
      button.frame = CGRectMake(5, 5, 35, 35)
      button.setImage(image, forState: .Normal)
      button.backgroundColor = .clearColor()
      button.addTarget(self, action: #selector(YourViewController.centerMapOnUserButtonClicked), forControlEvents:.TouchUpInside)
      self.mapView.addSubview(button)
   }

   func centerMapOnUserButtonClicked() {
      self.mapView.setUserTrackingMode( MKUserTrackingMode.Follow, animated: true)
   }
   ...
}

swift 4:

func addMapTrackingButton(){
    let image = UIImage(named: "trackme") as UIImage?
    let button   = UIButton(type: UIButtonType.custom) as UIButton
    button.frame = CGRect(origin: CGPoint(x:5, y: 25), size: CGSize(width: 35, height: 35))
    button.setImage(image, for: .normal)
    button.backgroundColor = .clear
    button.addTarget(self, action: #selector(ViewController.centerMapOnUserButtonClicked), for:.touchUpInside)
    mapView.addSubview(button)
}

@objc func centerMapOnUserButtonClicked() {
    mapView.setUserTrackingMode(MKUserTrackingMode.follow, animated: true)
}

关于ios - 使用 MapKit 将 View 集中到用户位置的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792608/

相关文章:

ios - 从核心数据中获取最近 10 个日期的对象

ios - 初始 View Controller 无响应,控制台中没有错误

iOS - 从后台更新 UI

ios - 如何显示启动图像

ios - 使用 MKZoomScale 调整 MKAnnotationView 的大小 - Swift 2.0

ios - 如何精简MKMapKit中的多个坐标折线条目

ios - 在 appdelegate 中以编程方式实例化 Storyboard

ios - 将 JSON 放入数组

swift - Swift optional 可以嵌套吗?

ios - Swift - 是否可以使用 ios 邮件应用程序附件图标?