如何在iOS中实现blink动画?

时间:2013-03-18 14:58:38

标签: ios animation core-animation core-graphics

我注意到iPhone application中有趣的动画效果。当用户激活应用程序或触摸今日按钮时,当前日期的单元格闪烁/闪烁。

如何实现相同的效果?是否可以在没有图像资源的情况下实现它(例如仅使用CoreGraphics)?

由于

3 个答案:

答案 0 :(得分:1)

使用UIAnimation并为标签的alpha属性设置动画。

答案 1 :(得分:1)

使用计时器连续闪烁效果

  mytimer = [NSTimer scheduledTimerWithTimeInterval:0.06f
                                             target:self
                                           selector:
             @selector(willStartBlinkingAnimation)
                                           userInfo:nil
                                            repeats:YES];

编写一个显示/隐藏日期标签的功能。或者你可以在这里设置alpha,即使时间设置为0.5f,奇数时间设置为1.0f。

- (void) willStartBlinkingAnimation {

  [UIView animateWithDuration:1.f
                   animations:^{

                     [currentDateLabel setHidden:![currentDateLabel isHidden]];
  }];
}

如果要停止此过程,或者在viewDidUnload方法中,请停止该过程并释放计时器:

[mytimer invalidate];
mytimer = nil;

希望这能帮助您满足您的要求。

答案 2 :(得分:0)

我认为你的意思是指在日历日“闪耀”的效果(通过按今天)。

1)创建渐变。

选项A : 要实现此效果,您应该创建一个具有表行适当高度的透明png。一个示例img看起来像这样(它仅用于说明,请创建一个): enter image description here

选项B :使用CAGradientLayer创建渐变。仍然必须使用UIImageView来有效地为单元格行上的渐变设置动画。我建议使用选项A,直到您不想以编程方式操作渐变视觉效果。

2)将图像放在行上。

选项A:如果您确定此动画始终位于顶行,则可以在表格上添加渐变图像。

选项B :(所提到的应用程序可能使用的内容)您必须将渐变图像放在单元格内。也许最好的选择是使用自定义单元格(如上面提到的应用程序使用,请参阅框中左侧的日期),将渐变图像放在单元格的左侧(放置X coord = -gradient_img.width)。 / p>

3)动画渐变。

在该动作上启动您想要链接的动画序列。例如。我认为应用程序使用表视图的scrollViewDidEndScrollingAnimation委托方法来触发动画。

[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveLinear 
                 animations:^{                       
                     viewShiningImage.frame = CGRectMake(320, 0, viewShiningImage.frame.size.width, viewShiningImage.frame.size.height);
                 } 
                 completion:^(BOOL finished) {
                     viewShiningImage.frame = CGRectMake(-viewShiningImage.frame.size.width, 0, viewShiningImage.frame.size.width, viewShiningImage.frame.size.height);
                 }
 ];