我怎么能够,并且很容易创建一个我可以放在UIImage之上的位置标记。我有一个平面图,并确定用户在哪里使用iBeacons。我想在用户站在附近的信标位置上设置位置标记的动画,类似于地图上的位置标记。
有任何建议如何做到这一点?理想情况下,它将是一个圆形,扩展,并逐渐消失。我对动画没有任何经验,也没有最好的方法。
提前致谢!
[编辑:] 这是(原型)视图的屏幕截图,所以我想在其中一个标签上放置动画。
答案 0 :(得分:0)
我做了类似的演示。我在信标位置绘制了一个蓝色圆圈,带有一个浅蓝色圆圈,其半径根据从信标到移动设备的估计距离而变化。这是一个小屏幕截图,显示效果的样子(浅蓝色方块是地图上描绘的附近物体):
绘制此代码的代码获取以米为单位的信标估计距离,并根据地图比例的radiusMultiplier进行调整。 centerX和centerY参数指示在屏幕上绘制点的位置:
-(void)setDistance: (double) distance centerX: (int) pixelCenterX centerY: (int) pixelCenterY radiusMultiplier: (double) radiusMultiplier {
// distance is in meters
if (distance < 0) {
NSLog(@"Not setting distance because it is < 0");
return;
}
int pixelRadius = distance*22*radiusMultiplier;
if (pixelRadius > 160) {
pixelRadius = 160;
}
if (pixelRadius < 14) {
pixelRadius = 14;
}
NSLog(@"Changing radius of circle to %d", pixelRadius);
if (_circle == Nil) {
_circle = [[NASClickBehindView alloc] init];
_circle.backgroundColor = [UIColor blueColor];
_circle.alpha = 0.2;
[_circle setFrame:CGRectMake(pixelCenterX-pixelRadius,pixelCenterY-pixelRadius,pixelRadius*2,pixelRadius*2)];
[self.webView addSubview:_circle];
_circle.tag = 100;
}
else {
[_circle setFrame:CGRectMake(pixelCenterX-pixelRadius,pixelCenterY-pixelRadius,pixelRadius*2,pixelRadius*2)];
}
_circle.layer.cornerRadius = pixelRadius;
if (_centerDot == Nil) {
_centerDot = [[NASClickBehindView alloc] init];
_centerDot.alpha = 0.9;
_centerDot.layer.cornerRadius = 8;
_centerDot.backgroundColor = [UIColor blueColor];
[_centerDot setFrame:CGRectMake(pixelCenterX-8,pixelCenterY-8,16,16)];
[self.webView addSubview:_centerDot];
_centerDot.tag = 100;
}
else {
[_centerDot setFrame:CGRectMake(pixelCenterX-8,pixelCenterY-8,16,16)];
}
}