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但是,如果您使用 a和 aUIImageView作为属性来滚动自己的导航项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 回答