Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios DidSelectRowatineXpath中的文本动画:?_Ios_Objective C_Animation_Uitableview_Didselectrowatindexpath - Fatal编程技术网

Ios DidSelectRowatineXpath中的文本动画:?

Ios DidSelectRowatineXpath中的文本动画:?,ios,objective-c,animation,uitableview,didselectrowatindexpath,Ios,Objective C,Animation,Uitableview,Didselectrowatindexpath,我使用的是MCSwipeTableViewCell,用户可以向左或向右滑动它来完成操作。但是,用户可能并不总是熟悉此操作,因此当他们点击单元格(期望选择它)时,我希望文本短暂闪烁一条简短的指令,然后返回到原始文本 我已经在这上面呆了好几天了,一直没有运气回来。我尝试过使用完成块,玩弄各种延迟,但是动画似乎完成得太快了,你实际上看不到变化,我做错了什么 -(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindep

我使用的是MCSwipeTableViewCell,用户可以向左或向右滑动它来完成操作。但是,用户可能并不总是熟悉此操作,因此当他们点击单元格(期望选择它)时,我希望文本短暂闪烁一条简短的指令,然后返回到原始文本

我已经在这上面呆了好几天了,一直没有运气回来。我尝试过使用完成块,玩弄各种延迟,但是动画似乎完成得太快了,你实际上看不到变化,我做错了什么

-(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;
        }];
    }];
}
该代码将使新文本即时替换旧文本并显示-如果需要,您可能会想出如何添加更多动画来防止出现这种情况