-1

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

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

谢谢

4

3 回答 3

1

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

于 2013-03-18T15:02:17.000 回答
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;

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

于 2013-03-18T15:24:31.947 回答
0

我假设您的意思是整个日历日“闪耀”的效果(按今天)。

1)创建渐变。

选项 A:要实现此效果,您应该创建一个具有适当高度的表格行的透明 png。示例 img 如下所示(仅供说明,请创建一个): 在此处输入图像描述

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

2)将图像放在行上。

选项 A:如果您确定此动画始终发生在第一行,那么您可以在表格上简单地添加渐变图像。

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

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);
                 }
 ];
于 2013-03-18T15:48:38.907 回答