我在UITableViewCell上有一个mapView,当我显示mapView时,注释会打开和关闭。我不知道如何让它停下来。
我通过
设置了mapViewif let event = event {
mapView.showsUserLocation = true
mapView.isUserInteractionEnabled = true
let center = CLLocationCoordinate2D(latitude: event.latitude, longitude: event.longitude)
//Create annotation
let annotation = MKPointAnnotation()
annotation.coordinate = center
mapView.addAnnotation(annotation)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005))
mapView.setRegion(region, animated: true)
}
我已确保注释仅添加到地图一次。 以下是https://youtu.be/lkpn9Rqd0AE发生的视频 此外,这只发生在没有用户交互的情况下,如果我滚动它停止这样做,如果我与地图交互它也会停止闪烁。
我创建了一个测试项目并且它没有这个问题,即使我复制并粘贴了上面的代码。我不知道有什么不同。
答案 0 :(得分:0)
如何使用Timer?
var timer: Timer!
func foo {
timer = Timer.scheduledTimer(timeInterval: 1.0,
target: self,
selector: #selector(self.update),
userInfo: nil,
repeats: true)
timer.fire()
}
func update(tm: Timer) {
for annotation in self.mapView.annotations {
if annotation is MKUserLocation { continue }
if let annotationView = mapView.view(for: annotation) {
annotationView.isHidden = !annotationView.isHidden
}
}
}
别忘了停止计时器。
timer.invalidate()
答案 1 :(得分:0)
在联系苹果开发者支持后,他们告诉我这是一个不是由我的代码引起的错误。
Apple已经表示会删除并添加一些内容来查找哪些内容,或者使用最新版本的Xcode来解决这个问题。下载最新版本的Xcode解决了我的问题。