gpt4 book ai didi

swift - 如何平滑地调整 MKCircle 的大小

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:42 30 4
gpt4 key购买 nike

我正在尝试实现一个 MKCircle,它会随着 slider 的变化而增加或减少半径。我遇到的问题是,当重新绘制圆圈时,它一点也不平滑。我已经阅读了其他一些帖子,它们似乎表明您必须创建 MKCircle 的子类并以某种方式在其中执行此操作,但是每当我查看示例代码时,我都会遇到困难,因为它通常不在 Swift 3 中。有人可以吗告诉我怎么做?这是我更改 slider 时的代码:

func sliderValueChanged(_ sender:UISlider!) {
if (!map.selectedAnnotations.isEmpty) {
for overlay in map.overlays {
var temp : MKAnnotation = (map.selectedAnnotations.first)!
if (overlay.coordinate.latitude == temp.coordinate.latitude && overlay.coordinate.longitude == temp.coordinate.longitude) {
let newCirc : MKCircle = MKCircle(center: temp.coordinate, radius: CLLocationDistance(Float(sender.value*1000)))
let region: MKCoordinateRegion = MKCoordinateRegionForMapRect(newCirc.boundingMapRect)
let r: MKCoordinateRegion = map.region
if (region.span.latitudeDelta > r.span.latitudeDelta || region.span.longitudeDelta > r.span.longitudeDelta){
map.setRegion(region, animated: true)
}
map.add(MKCircle(center: temp.coordinate, radius: CLLocationDistance(Float(sender.value*1000))))
map.remove(overlay)
break
}
}

}
}

Image of what I have so far

最佳答案

我是这样解决的:

let currentLocPin = MKPointAnnotation()
var circle:MKCircle!

func sliderValueDidChange(sender: UISlider) {

map.remove(circle)

circle = MKCircle(center: currentLocPin.coordinate, radius: CLLocationDistance(sender.value))
map.add(circle)
}

希望对您有所帮助。

关于swift - 如何平滑地调整 MKCircle 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44424109/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com