首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MKMapView上复制像用户位置一样的辐射圈

在MKMapView上复制像用户位置一样的辐射圈
EN

Stack Overflow用户
提问于 2011-10-20 04:21:53
回答 2查看 1.8K关注 0票数 1

有没有可能有像用户位置注解一样的辐射圈。以便自定义批注具有其他颜色的辐射状圆圈。如果没有,有没有办法让它正常工作呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-05 14:59:00

看看这个。你可以用它来做你需要做的事情。结合使用核心动画和子类化MKCircleViewMKOverlayView

http://yickhong-ios.blogspot.com/2012/04/animated-circle-on-mkmapview.html

票数 4
EN

Stack Overflow用户

发布于 2011-10-25 09:34:43

可以创建执行此操作的UIView的自定义子类。具有两个子层的UIView,一个用于中心球,另一个用于扩展环。环状层和球层可以通过子类化CALayer并覆盖drawInContext来创建,因此您可以获得所需的任何颜色。代码可以使用这样的CAAnimationGroup来设置环的动画,以便它们同时扩展和淡出:

代码语言:javascript
运行
复制
// expand the ring from the ball size to the ring's max size
CABasicAnimation *sizeAnim = [CABasicAnimation animationWithKeyPath:@"bounds"];
sizeAnim.fromValue   = [NSValue valueWithCGRect:ballBounds];
sizeAnim.toValue     = [NSValue valueWithCGRect:ringBoundsMax];
sizeAnim.duration    = kRingExpansionTime;

// fade out the ring part way thru the animation
CABasicAnimation* alphaAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
alphaAnim.fromValue   = [NSNumber numberWithFloat:1];
alphaAnim.toValue     = [NSNumber numberWithFloat:0];
alphaAnim.beginTime   = kRingExpansionTime * 0.7f;      // start part way thru
alphaAnim.duration    = kRingExpansionTime - alphaAnim.beginTime;

CAAnimationGroup* group = [CAAnimationGroup animation];
group.duration    = kRingExpansionTime;
group.repeatCount = HUGE_VALF;      // repeat forever
group.animations  = [NSArray arrayWithObjects:sizeAnim, alphaAnim, nil];
[ringLayer addAnimation:group forKey:nil];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7827638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档