在弹出转换到的视图控制器之前,如何突出显示单元格?

时间:2014-12-14 07:38:06

标签: ios objective-c cocoa-touch uitableview uiview

许多应用都有这种效果,你点击单元格,它转换到一个新的视图控制器,然后当你弹出该视图控制器返回到单元格时,你点击到达那里的单元格才会淡出。基本上,当你返回到视图控制器时它只会淡出,为你提供一个非常好的视觉队列,你可以使用哪个单元格。

例如,它在Mail.app中可见。

我该怎么做?我似乎只能让它立即消失或根本不消失。

1 个答案:

答案 0 :(得分:2)

例如,您有两个视图控制器,ListViewController(表1)和DetailViewController

  • 在ListViewController.h中,添加一个参数:selectedIndexPath(NSIndexPath类型)。
  • 在ListViewController.m中 - > didSelectRowAtIndexPath,将其值设置为当前indexPath

    selectedIndexPath = indexPath;

  • 现在当您点按DetailViewController上的后退按钮并返回ListViewController时,viewWillAppear会调用ListViewController方法。

ListViewController.m - > viewWillAppear中

if (selectedIndexPath != nil) {

   // 1. get the cell using cellForRowAtIndexPath method from selectedIndexPath position
   // 2. now you can set cell.contentView.alpha = 0
   // 3. write an animation block which will set alpha to 1 in particular time block, let say 1 sec.

    [cell.contentView setAlpha:0.0f];
    [UIView animateWithDuration:1
                          delay:1.0
                        options: UIViewAnimationCurveEaseOut // change option as per your requirement
                     animations:^{
                         [cell.contentView setAlpha:1.0f];
                     } 
                     completion:^(BOOL finished){
                         NSLog(@"Done!");
                     }];
}

根据您的要求更新动画块。

希望这有帮助。