0

私はscrollViewアプリを持っています。また、各scrollViewアイテムには、独自のタイトル(navigationItemタイトル)があります。ここで、ユーザーが特定のscrollViewアイテムで何かを実行したときに(このイベントをキャプチャする方法があります)、ナビゲーションアイテムをアニメーション化します。

背景色を連続的に変えたり、できれば透明度を上げたり下げたりすることを考えていました。

誰かがこれに似た何かをしましたか?これを行うための正しいアプローチは何でしょうか?現在のscrollViewアイテム(ビュー)が他のアイテムと異なるだけで、必要なスクリプト要件はありません。

提案をありがとう

私は受け取った応答からそれを得ました:

CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"opacity"];
    animation.duration=1.5;
    animation.repeatCount=1000000;
    animation.autoreverses=YES;
    animation.fromValue=[NSNumber numberWithFloat:1.0];
    animation.toValue=[NSNumber numberWithFloat:0.3];
    [button addAnimation:animation forKey:@"animateOpacity"];

発作を引き起こすのに速すぎず集中的ではないことを願っています

4

2 に答える 2

1

UIBarButtonItem は (厄介なことに) UIView から継承されないため、CoreAnimation を試してみると、しゃがんでしまいます。UIButtonただし、プロパティとしておよびUIImageViewセットを使用して独自のナビゲーション アイテムをロールした場合customView、アニメーションは UIView のブロック アニメーション ラッパーで完全に可能です。

[UIView animateWithDuration:1.0f animations:^{
    [myButton setAlpha:0.0f];
    //the button is now invisible
}];

カラー アニメーションに関しては、残念ながら、アニメーション化できるのは CGColors のみであり、非常に大雑把な状況下でのみ可能です。

于 2012-06-15T13:16:05.723 に答える
0

ボタン全体をアニメーション化する代わりに、次のことを行うことができます。ナビゲーション項目の点滅またはフラッシュのようなアニメーションの場合は、tintColor を変更するだけです。

  // call timer where you want to start the blinking or flash like animation

 [NSTimer scheduledTimerWithTimeInterval:0.65f target:self selector:@selector(animate) userInfo:nil repeats:YES];


 -(void)animate
  {

   if (flagAnimate == 0) {
   self.navigationItem.leftBarButtonItem.tintColor = [UIColor redColor];
     flagAnimate = 1;
  }
   else if (flagAnimate == 1)
  {
 self.navigationItem.leftBarButtonItem.tintColor = [UIColor grayColor];
     flagAnimate = 0;

  }
于 2013-01-28T09:43:51.020 に答える