での複数行選択の私の最初の問題は、この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
メソッドを正しく定義および宣言して、適切に使用できるようにするにはどうすればよいですか?