gpt4 book ai didi

ios - 在 didAddAnnotation 中更改添加的 MKAnnotationView alpha 会影响屏幕上的所有 MKAnnotationView

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:53 26 4
gpt4 key购买 nike

我正在尝试通过动画使我的注释淡入淡出,因此我使用 0 的 alpha 创建它们,然后在 didAddAnnotation 中将它们的 alpha 设置为 1。有时我只添加一些注释,减去其他注释,但现在屏幕上的每个注释都在添加任何注释时淡出/淡入,而不是预期的行为,即只有最近添加的引脚才会淡出到 1。

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views{

for (MKAnnotationView *view in views){

if (view.alpha ==0){

[UIView animateWithDuration:.5 animations:^{

view.alpha = 1;

}];
}

}

最佳答案

要为添加的注释设置动画,您可以使用 MKAnnotationView 的这个子类

class AnnotationView: MKAnnotationView {

override var annotation: MKAnnotation? {
didSet {
UIView.animate(withDuration: 0.5) { self.alpha = 1.0 }
}
}

override init(annotation: MKAnnotation?, reuseIdentifier: String?) {
super.init(annotation: annotation, reuseIdentifier: reuseIdentifier)
self.alpha = 0
}

override func prepareForReuse() {
super.prepareForReuse()

self.alpha = 0.0
}

}

用法:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if let view = mapView.dequeueReusableAnnotationView(withIdentifier: "annot") as? AnnotationView {
return view
}

return AnnotationView(annotation: annotation, reuseIdentifier: "annot")
}

关于ios - 在 didAddAnnotation 中更改添加的 MKAnnotationView alpha 会影响屏幕上的所有 MKAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21540819/

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