19

マップ内の現在位置の脈動リングを使用して青いボールを実装する方法を知りたいのですが、マップビューは使用しません。

基本的に、ユーザーが画面に触れるたびに、通常の UIView (またはカスタム ビュー) に脈動するリングを備えた青いボールを表示する最良の方法を知りたいと思います。そのタッチは青いボールの中心です。

私には 2 つのアイデアがあります。最初はアニメーションを実装できましたが、これはできませんでしたが、おそらく可能です。2 つ目は、gif などの一連の画像を取得し、ユーザーが触れた場所に表示することです。

最適なオプションはどれですか? または、より良いオプションがありますか?

ありがとうございました。

4

4 に答える 4

45

これを試して:

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>する必要があります。

于 2012-12-31T18:29:49.657 に答える
17

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")
于 2015-06-18T13:12:26.007 に答える
1

画像シーケンスではなく、プログラムでアニメーションを行う方が優れたアプローチです (Apple の方法でもあります)。これには多くの利点がありますが、特にパフォーマンスが大幅に向上しています (イメージ シーケンス アニメーションが 60FPS で実行されることはほとんどありません!)。

このアニメーションはさまざまな方法で実現できます。最も簡単な方法は、イメージ エディターでリング グラフィックを作成し、それUIImageViewを保持する を作成することです。次に、ビューのスケール、アルファ、およびフレームのプロパティを簡単にアニメーション化できます (イメージ ビューがスケールに合わせてイメージのサイズを変更するように設定されていることを確認してください)。脈動するアニメーションが無期限に繰り返されるようにするには、UIView アニメーションの繰り返しプロパティを設定します。中央の「青いボール」は、上に別のUIImageViewオーバーレイにすることができます。

UIViewアニメーションは非常に簡単で、Apple はあなたを動かすためのサンプル コードをたくさん用意しています。アニメーション ブロック内でアニメーション化するプロパティを、アニメーション パラメータ (期間、繰り返しなど) と共に囲むだけで、あとは iOS が行います。StackOverflow で「UIView animation」を検索すると、役立つ可能性のある多くの質問が表示されます。

于 2012-12-31T18:10:41.137 に答える