Ios 取消选择行后,如何在UITableView中取消高亮显示附件?

Ios 取消选择行后,如何在UITableView中取消高亮显示附件?,ios,uitableview,Ios,Uitableview,我有一个带有自定义附件按钮的UITableView。选择表格单元格后,附件按钮将处于高亮显示状态。好吧,那是件好事。当选择了另一个单元格,导致第一个单元格取消选择时,附件按钮不会变回未高亮状态 这是一个屏幕截图,显示一个不再选中的单元格(Rose),但仍选择了附件按钮 我试过这里建议的解决办法。它不起作用。我重新加载了表中的每个单元格,但它仍然没有将附件按钮置于未亮状态 我已经尝试在单元格中显式取消高亮显示按钮,包括在新选定按钮的选择器中以及在tableView:accessorybutton

我有一个带有自定义附件按钮的UITableView。选择表格单元格后,附件按钮将处于高亮显示状态。好吧,那是件好事。当选择了另一个单元格,导致第一个单元格取消选择时,附件按钮不会变回未高亮状态

这是一个屏幕截图,显示一个不再选中的单元格(Rose),但仍选择了附件按钮

我试过这里建议的解决办法。它不起作用。我重新加载了表中的每个单元格,但它仍然没有将附件按钮置于未亮状态

我已经尝试在单元格中显式取消高亮显示按钮,包括在新选定按钮的选择器中以及在
tableView:accessorybuttonattappedforrowwithindexath:
方法中。没有快乐

以下是创建按钮的代码:

- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
...
    UIButton *folderButton = [UIButton buttonWithType: UIButtonTypeCustom];
    folderButton.frame = CGRectMake(0.0, 0.0, 33.0, 33.0);
    [folderButton setImage: [UIImage imageNamed: @"open_document.png"] forState: UIControlStateNormal];
    [folderButton addTarget: self action: @selector(documentButtonAction:) forControlEvents: UIControlEventTouchUpInside];
    [folderButton setTag: [program tag]];
    cell.accessoryView = folderButton;

...
}
到目前为止,我找到的唯一解决方案是将高亮显示的按钮图像设置为未高亮显示的图像,但这也非常糟糕,因为点击按钮时按钮不会高亮显示

如何解除附件按钮的高亮显示?

试试这个

[tableView reloadRowsAtIndexPaths:@[indexPathToDeselect]
                 withRowAnimation:UITableViewRowAnimationNone];
其中,
indexPathToDeselect
是先前高亮显示的行的索引路径。这将强制重新绘制该行。

请尝试此

[tableView reloadRowsAtIndexPaths:@[indexPathToDeselect]
                 withRowAnimation:UITableViewRowAnimationNone];

其中,
indexPathToDeselect
是先前高亮显示的行的索引路径。这将强制重新绘制该行。

您可以尝试使用委托方法
tableView:willDeselectRowAtIndexPath:
tableView:didDeselectRowAtIndexPath:

然后取消选择您的自定义访问视图。

您可以尝试使用委托方法
tableView:willDeselectRowAtIndexPath:
tableView:diddescrowatindexpath:

然后取消选择您的自定义附件视图。

如文章中所述,我确实尝试过这种方法。但奇怪的是,我试着重新加载整个表而不是行,结果成功了。奇怪的[self.programmableview reloadData];正如在文章中提到的,我确实尝试过这种方法。但奇怪的是,我试着重新加载整个表而不是行,结果成功了。奇怪的[self.programmableview reloadData];见上文。我确实试过这个;它不起作用。桌子上一定还有什么奇怪的东西。在任何情况下,当我重新加载整个表(而不仅仅是行)时,它都起作用了。我确实试过这个;它不起作用。桌子上一定还有什么奇怪的东西。在任何情况下,当我重新加载整个表(而不仅仅是行)时,它都能正常工作。