gpt4 book ai didi

iphone - 是否可以创建自定义的动画 MKAnnotationView?

转载 作者:行者123 更新时间:2023-12-03 19:42:43 28 4
gpt4 key购买 nike

我正在尝试在 MapKit 中模拟用户位置动画(其中用户的位置由脉动的蓝点表示)。我创建了 MKAnnotationView 的自定义子类,并在 drawRect 方法中尝试循环一组颜色。这是我正在做的事情的一个更简单的实现:

- (void)drawRect:(CGRect)rect {
float magSquared = event.magnitude * event.magnitude;
CGContextRef context = UIGraphicsGetCurrentContext();
if (idx == -1) {
r[0] = 1.0; r[1] = 0.5; r[2] = 0;
b[0] = 0; b[1] = 1.0; b[2] = 0.5;
g[0] = 0.5; g[1] = 0; g[2] = 1.0;
idx = 0;
}
// CGContextSetRGBFillColor(context, 1.0, 1.0 - magSquared * 0.015, 0.211, .6);
CGContextSetRGBFillColor(context, r[idx], g[idx], b[idx], 0.75);
CGContextFillEllipseInRect(context, rect);
idx++;
if (idx > 3) idx = 0;
}

不幸的是,这只会导致注释成为 3 种不同颜色之一,并且不会循环使用它们。有没有办法强制 MKAnnotations 不断重绘,使其看起来像动画?

最佳答案

只要您希望重绘注释 View ,您就可以自由地在注释 View 上调用setNeedsDisplay。最简单的方法是让注释 View 本身设置一个计时器,每隔 1/60 秒左右触发一次。

更复杂的方法是将绘图代码放入自定义的CALayer中,并对其应用重复的核心动画动画。请参阅my answer to "Animating a custom property of CALayer subclass"寻找一种方法。

关于iphone - 是否可以创建自定义的动画 MKAnnotationView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683445/

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