我想知道如何在地图上实现蓝色球与当前位置的脉动环,但没有mapview。IOS动画脉冲圈如地图上的蓝色球
基本上我想知道在正常UIView(或我的自定义视图)上有一个带有脉动环的蓝色球的最佳方式,无论用户何时触摸屏幕,该触摸都是蓝色球的中心。
我有两个想法,首先我可以实现一个动画,但我无法做到,但它可能是可能的。 第二,我可以得到一系列图像,例如gif,并在用户触摸的任何地方显示。
哪一个是最好的选择?还是有更好的选择?
谢谢。
我想知道如何在地图上实现蓝色球与当前位置的脉动环,但没有mapview。IOS动画脉冲圈如地图上的蓝色球
基本上我想知道在正常UIView(或我的自定义视图)上有一个带有脉动环的蓝色球的最佳方式,无论用户何时触摸屏幕,该触摸都是蓝色球的中心。
我有两个想法,首先我可以实现一个动画,但我无法做到,但它可能是可能的。 第二,我可以得到一系列图像,例如gif,并在用户触摸的任何地方显示。
哪一个是最好的选择?还是有更好的选择?
谢谢。
试试这个:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
view.backgroundColor = [UIColor blueColor];
view.layer.cornerRadius = 50;
[self.view addSubview:view];
CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
scaleAnimation.duration = 0.2;
scaleAnimation.repeatCount = HUGE_VAL;
scaleAnimation.autoreverses = YES;
scaleAnimation.fromValue = [NSNumber numberWithFloat:1.2];
scaleAnimation.toValue = [NSNumber numberWithFloat:0.8];
[view.layer addAnimation:scaleAnimation forKey:@"scale"];
设置参数,只要你喜欢,修改的效果。
编辑:
您必须添加QuartzCore
框架,包括<QuartzCore/QuartzCore.h>
这个工作。
以编程方式执行动画而不是使用图像序列是更好的方法(并且它也是Apple如何做的)。它具有许多优点,尤其是性能要好得多(您的图像序列动画不可能在60FPS下运行!)。
您可以通过多种方式实现此动画:最简单的方法是在图像编辑器中创建环形图形,然后创建一个可用于保存该动画的图形。然后,您可以简单地对视图的比例,alpha和帧属性(确保您的图像视图设置为按比例调整图像大小)进行动画处理。为确保您的动画动画无限重复,您可以设置UIView动画重复属性。你的中央'蓝色球'可以是一个单独的UIImageView
覆盖顶部。
UIView
动画非常简单,苹果有很多示例代码可以帮助你。你只需将你在动画块中动画的属性以及动画参数(持续时间,重复等)放在一起,iOS就会完成剩下的动作。在StackOverflow上搜索'UIView动画'会给你很多很多的问题,可能会有所帮助。
尝试一下本作SWIFT
let view:UIView = UIView(frame: CGRectMake(200, 200, 100, 100))
view.layer.cornerRadius = 50
view.backgroundColor = UIColor.blueColor()
self.view.addSubview(view)
let scaleAnimation:CABasicAnimation = CABasicAnimation(keyPath: "transform.scale")
scaleAnimation.duration = 0.5
scaleAnimation.repeatCount = 30.0
scaleAnimation.autoreverses = true
scaleAnimation.fromValue = 1.2;
scaleAnimation.toValue = 0.8;
view.layer.addAnimation(scaleAnimation, forKey: "scale")
scaleAnimation.repeatCount = 30.0只会重复动画30次迭代。使用scaleAnimation.repeatCount = HUGE使动画无限期地重复。 – leafcutter
非常感谢你,这解决了我所有的问题。 我不知道layer有那个cornerRadius属性。 –
我该如何接受=)。 对不起,这里从来没有问过太多,只是搜索了人们已经发布的内容。 –
还有一件事,如果我想使弧不完全完成? 从0到PI? 我确实设法使用CGContextAddArc来做到这一点,但我无法设置边框宽度。 刚刚发现我自己=),无论如何,谢谢。 答案:CGContextSetLineWidth –