Ios DidSelectRowatineXpath中的文本动画:?
我使用的是MCSwipeTableViewCell,用户可以向左或向右滑动它来完成操作。但是,用户可能并不总是熟悉此操作,因此当他们点击单元格(期望选择它)时,我希望文本短暂闪烁一条简短的指令,然后返回到原始文本 我已经在这上面呆了好几天了,一直没有运气回来。我尝试过使用完成块,玩弄各种延迟,但是动画似乎完成得太快了,你实际上看不到变化,我做错了什么Ios DidSelectRowatineXpath中的文本动画:?,ios,objective-c,animation,uitableview,didselectrowatindexpath,Ios,Objective C,Animation,Uitableview,Didselectrowatindexpath,我使用的是MCSwipeTableViewCell,用户可以向左或向右滑动它来完成操作。但是,用户可能并不总是熟悉此操作,因此当他们点击单元格(期望选择它)时,我希望文本短暂闪烁一条简短的指令,然后返回到原始文本 我已经在这上面呆了好几天了,一直没有运气回来。我尝试过使用完成块,玩弄各种延迟,但是动画似乎完成得太快了,你实际上看不到变化,我做错了什么 -(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindep
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindepath*)indepath
{
[tableView取消行索引路径:索引路径:否];
mcswipatebleviewCell*单元格=(mcswipatebleviewCell*)[self.tableView cellForRowAtIndexPath:indexath];
Station*Station=self.recentStations[indexPath.row];
[UIView animateWithDuration:0.5动画:^{
//将文本淡出的代码
CATTransition*动画=[CATTransition动画];
animation.timingFunction=[CamediaTimingFunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.type=kCATransitionFade;
animation.duration=0.35;
[cell.textlab.layer addAnimation:animation forKey:@“kCATransitionFade”];
//简要说明
cell.textlab.text=@“向左滑动可设置报警,向右滑动可删除”;
//嵌套动画在延迟1.5秒后还原文本
[UIView animateWithDuration:.05延迟:1.5选项:UIViewAnimationOptionCurveEaseIn动画:^{
//代码以淡入文本
CATTransition*动画=[CATTransition动画];
animation.timingFunction=[CamediaTimingFunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.type=kCATransitionFade;
animation.duration=0.35;
[cell.textlab.layer addAnimation:animation forKey:@“kCATransitionFade”];
cell.textlab.text=station.name;
}完成:无];
}];
}
您正在使用重复的嵌套动画API。试试下面的代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
MCSwipeTableViewCell *cell = (MCSwipeTableViewCell *)[self.tableView cellForRowAtIndexPath:indexPath];
Station *station = self.recentStations[indexPath.row];
[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
cell.textLabel.alpha = 0.0f;
} completion:^(BOOL finished) {
//instructions to appear briefly
cell.textLabel.alpha = 1.0f;
cell.textLabel.text = @"Swipe left to set alarm or right to remove";
[UIView animateWithDuration:0.5 delay:1.5 options:UIViewAnimationOptionCurveEaseInOut animations:^{
cell.textLabel.alpha = 0.0f;
} completion:^(BOOL finished) {
cell.textLabel.alpha = 1.0f;
cell.textLabel.text = station.name;
}];
}];
}
该代码将使新文本即时替换旧文本并显示-如果需要,您可能会想出如何添加更多动画来防止出现这种情况