我最初在 a 中选择多行的问题UITableView
已在此问题中得到解答。但答案让我无法独自继续下去,因为我对 Objective C 和 iOS 开发非常陌生。
按照daxnitro的回答,我想实现他/她建议的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([tableView indexPathIsSelected:indexPath]) {
[tableView removeIndexPathFromSelection:indexPath];
} else {
[tableView addIndexPathToSelection:indexPath];
}
// Update the cell's appearance somewhere here
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
我仍然需要这些方法,我认为我可以这样做indexPathIsSelected
(例如)这样:
@interface MyTableViewController ()
- (BOOL)indexPathIsSelected:(NSIndexPath *)indexPath;
@end
@implementation MyTableViewController
// ...
- (BOOL)indexPathIsSelected:(NSIndexPath *)indexPath
{
BOOL bIsSelected = NO;
// ...
return bIsSelected;
}
@end
但这不起作用。错误消息是:“UITableView”没有可见的@interface 声明选择器“indexPathIsSelected:”注意:如果我在.h 文件的界面中声明方法,也会发生同样的情况。
现在,让我感到困惑的是:[tableView indexPathIsSelected:indexPath]
以某种方式调用tableView
对象,我什至不知道为什么。这是我在方法声明/定义中必须考虑的事情吗?我现在真的很愚蠢,我什至不能通过看到它的调用来编写一个方法。
如何正确定义和声明方法indexPathIsSelected
,以便正确使用它?