我注意到iPhone application中有趣的动画效果。当用户激活应用程序或触摸今日按钮时,当前日期的单元格闪烁/闪烁。
如何实现相同的效果?是否可以在没有图像资源的情况下实现它(例如仅使用CoreGraphics)?
由于
答案 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看起来像这样(它仅用于说明,请创建一个):
选项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);
}
];