我在 iPhone应用程序中注意到有趣的动画效果。当用户激活应用程序或触摸今天按钮时,当前日期的单元格闪烁/闪烁。
如何实现相同的效果?是否可以在没有图像资源的情况下实现它(例如仅使用 CoreGraphics)?
谢谢
我在 iPhone应用程序中注意到有趣的动画效果。当用户激活应用程序或触摸今天按钮时,当前日期的单元格闪烁/闪烁。
如何实现相同的效果?是否可以在没有图像资源的情况下实现它(例如仅使用 CoreGraphics)?
谢谢
使用UIAnimation
标签的 alpha 属性并为其设置动画。
使用定时器实现连续闪烁效果
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;
希望这将帮助您满足您的要求。
我假设您的意思是整个日历日“闪耀”的效果(按今天)。
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);
}
];