我有一个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"];
我希望
引起癫痫发作并不是太快和太强烈答案 0 :(得分:1)
UIBarButtonItem(恼人地)不会从UIView继承,所以如果你尝试的话,CoreAnimation会蹲下来。但是,如果您使用UIButton
和UIImageView
设置作为customView
属性来滚动自己的导航项,则完全可以使用UIView的块动画包装器进行动画:
[UIView animateWithDuration:1.0f animations:^{
[myButton setAlpha:0.0f];
//the button is now invisible
}];
至于彩色动画,不幸的是,只有CGColors可以动画,然后,只有在非常粗略的情况下。
答案 1 :(得分: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;
}