【问题标题】:UITable view selection stay highlightedUITableview 选择保持突出显示
【发布时间】:2012-02-19 20:21:26
【问题描述】:

我正在使用 XCode4.2 开发故事板应用程序

在单击行以蓝色突出显示并加载新视图后,我正在基于 UITableView 中的单击切换视图。

当我返回原始视图时,该行仍以蓝色突出显示...我该如何禁用它?

【问题讨论】:

    标签: objective-c uitableview xcode4.2 storyboard


    【解决方案1】:

    我这样做

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        [tableView deselectRowAtIndexPath:indexPath];
    }
    

    这样我就有了每次选择的索引路径。

    【讨论】:

    • 这里我修复了大写,如果这不起作用,那么您放置此代码的类不是表格视图的委托...
    【解决方案2】:

    使用deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated函数在uitableview中取消选择行

    在你的 viewWillAppear 函数中调用它

    [yourTableView deselectRowAtIndexPath:selectedIndexPath animated:NO];

    如果您不确定上次选择的是哪个索引,您可以在表中的所有索引路径上运行循环。

    -(void) viewWillAppear:(BOOL)animated{
    
    
        [super viewWillAppear:animated];
    
        for(int i = 0; i <= [yourArr count]; i++)
        {
            NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
            [yourTableView deselectRowAtIndexPath:indexPath animated:NO];
        }
    
    }
    

    注意:由于我不知道您的确切代码....您需要根据需要修改上述代码。

    【讨论】:

    • 我找不到这个函数,我在一个 UIView 控制器中,里面有一个表......它是否与 -(void)tableView:(UITableView didDeselectRowAtIndexPath:(NSIndexPath*) indexPath 还有我应该在函数体中写什么?
    【解决方案3】:

    UITableViewController 会自动执行此操作。否则,在您的 viewDidAppear 中,您需要在表视图上调用 - (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated

    【讨论】:

    • 我找不到这个函数,我在一个 UIView 控制器中,里面有一个表......它是否与 -(void)tableView:(UITableView didDeselectRowAtIndexPath:(NSIndexPath*) indexPath 还有我应该在函数体中写什么?
    • deselectRowAtIndexPathUITableView 的成员。
    • 你不写。您可以在控制器中从 viewDidAppear 调用它。
    猜你喜欢
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2013-04-17
    • 2014-09-10
    相关资源
    最近更新 更多