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

Posted

技术标签:

【中文标题】在弹出它转换到的视图控制器之前,如何使单元格保持突出显示?【英文标题】:How do you have a cell stay highlighted until you pop the view controller it transitions to? 【发布时间】:2014-12-14 07:38:05 【问题描述】:

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

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

我该怎么做?看来我只能让它立即褪色或根本不褪色。

【问题讨论】:

这是UITableView 的标准行为。也许你应该显示你的代码didSelectRowAtIndexPath @Doug Smith:如果对您有帮助,请将答案标记为已接受。 【参考方案1】:

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

在 ListViewController.h 中,添加一个参数:selectedIndexPath(NSIndexPath 类型)。

在 ListViewController.m -> didSelectRowAtIndexPath,将其值设置为当前 indexPath

selectedIndexPath = indexPath;

1234563

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!");
                     ];

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

希望这会有所帮助。

【讨论】:

以上是关于在弹出它转换到的视图控制器之前,如何使单元格保持突出显示?的主要内容,如果未能解决你的问题,请参考以下文章

Swift IOS在弹出后保持视图控制器在后台运行

如何使弹出点指向表格视图单元格

使 UIButton 保持在表格视图 rss 提要单元格的顶部 [重复]

如何在 ipad 中的 tableview 单元格上显示弹出框单击

呈现和关闭模式视图控制器时如何保持选择集合视图单元格?

如何使单元格不与其他单元格一起滚动?