如何使用Swift在一定时间后删除地图引脚?

时间:2016-03-03 06:02:07

标签: ios swift mkmapview mapkit mkpointannotation

我在地图上有一个图钉,我希望在经过一段时间后将其删除。我已经实现了所有适当的协议来放置注释。只是不确定在哪里检查时间变量的值是否为>=一定量。

var timer = NSTimer()

let annotation = MKPointAnnotation()

var time = 0

//按钮按下创建一个图钉

@IBAction func buttonPressed(sender: AnyObject) {

        func timerFunc() {

            time++

        }

        annotation.coordinate = location

        annotation.title = "Place"

        annotation.subtitle = "Description"

        map.addAnnotation(annotation)

            timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("timerFunc"), userInfo: nil, repeats: true)

        }

        if time >= 5 {
            timer.invalidate()
        } 

    }

现在看来我需要在某处放置类似的东西:

if time >= 5 {
    map.removeAnnotation(annotation)
  }

1 个答案:

答案 0 :(得分:2)

您可以使用NSTimer调用删除注释的方法。

var myTimer: NSTimer!


@IBAction func buttonPressed(sender: AnyObject) {

    annotation.coordinate = location
    annotation.title = "Place"
    annotation.subtitle = "Description"
    map.addAnnotation(annotation)
    myTimer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: "runTimedCode", userInfo: nil, repeats: false)
    }
}

//this method will be called after 5 seconds
func runTimedCode() {  
       map.removeAnnotation(annotation)
}