嗨我需要为我放在每个tableviewcell里面的标签设置淡出淡出动画。此动画应每隔5秒调用一次。所以我在cellForRowAtIndexPath中给出了动画。但是这个动画应该连续发生。我尝试将它放在nstimer中,但该动画只出现在最后一行中的标签上。所以现在我给了cellForRowAtIndexPath。到目前为止,所有标签都会出现动画,但只有在调用cellforrowatindexpath时才会出现。请指导我。这是我在cellofrowatindexpath创建单元格之外的代码
UILabel *rewardPtLabel = (UILabel*)[cell.contentView viewWithTag:kRewardlabelTag];
rewardPtLabel.text = [NSString stringWithFormat:@"%@ %@",[appRecord objectForKey:@"ProductReward"],@""];//rewardPoints
rewardPtLabel.alpha = 0;
rewardPtLabel.textColor=[UIColor redColor];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:2];
rewardPtLabel.alpha = 1;
[UIView commitAnimations];
rewardPtLabel.textColor=[UIColor greenColor];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration:2];
rewardPtLabel.alpha = 0;
[UIView commitAnimations];
答案 0 :(得分:0)
仅为每个标签设置动画一次。这意味着不是在每个cellForRow:call中,而是仅在单元创建时。或者之前删除动画,但这有点难看
[view.layer removeAllAnimations]
1)如果您使用的是iOS 4或更高版本,则应使用基于块的动画方法。 (您希望如此),请参阅animateWithDuration:delay:options:animations:completion:
2)查看重复动画的动画选项UIViewAnimationOptionRepeat
3)另请参阅UIViewAnimationOptionAutoreverse
,这样您只需要在一个方向上设置淡入淡出..
这将导致更少的代码和更好的工作。
答案 1 :(得分:0)
它在标签中重复动画
-(void)animate
{
[UIView animateWithDuration:1
delay:0
options: UIViewAnimationCurveEaseOut
animations:^{
//set animations
}
completion:^(BOOL finished){
[self performSelector:@selector(animate) withObject:frdctrl afterDelay:1];
}];
}