在 Swift 中使用文本字段设置 MKAnnotation 的标题

Use a text field to set the title of an MKAnnotation in Swift

在地图上的某个点注册长按后,我想要弹出一个文本字段,这样我就可以将输入设置为在该点放置的图钉的标题。我该怎么做呢? 这是我的代码,目前注册了一个长按并放置了一个 pin,一切正常!我不确定如何调出文本字段并让用户输入

func DropPin(gestureRecognizer:UIGestureRecognizer) {
     if gestureRecognizer.state == .Began {

        var point:CGPoint = gestureRecognizer.locationInView(self.Map)

        var pinLoc: CLLocationCoordinate2D = self.Map.convertPoint(point, toCoordinateFromView: self.Map)



        let x = CustomAnnotation(coordinate: pinLoc, title: "Pin", subtitle: "Pin", imageName: "TouchPin")
        self.Map.addAnnotation(x)
    }
}

有多种方法可以做到这一点,但您可以选择两种方法中的一种。

在您的视图中,您添加了一个文本字段,用户可以在放置图钉之前在其中设置标题。但这可能不直观或看起来很糟糕(例如,如果您需要全屏地图)。

所以,我的建议是激发 UIAlertController with a text field inside. Here is an example 你如何做到这一点。 你要么 :

  1. 创建注释
  2. 将其添加到地图
  3. 出现警报
  4. 用户输入一个名字(保存在某处)
  5. 您检索到您添加的最后一个注释
  6. 您将其标题设置为之前输入的名称

或:

  1. 您检测到您的长按
  2. 出现警报
  3. 用户输入一个名字(保存在某处)
  4. 使用之前输入的名称创建注释
  5. 将其添加到地图

这些只是 2-3 个示例。你可能会想到别的东西:)