1

私のアプリにはUITableView. 選択したセルにチェックマークを付け、再度選択されたらチェックマークを外します。「次へ」ボタンである UIBarButtonItem があり、デフォルトで無効になっています。

私の質問は、少なくとも1つUITableViewCellにチェックマークが付いている場合、次のボタンを有効にする必要があるということです. 少なくとも 1 つのセルにチェックマークが付いているかどうかに関係なく、すべてのセルを制御するにはどうすればよいですか。

4

4 に答える 4

3

セルが選択されている場合は true に設定され、選択されていない場合は false に設定される bool 変数を「そのまま」使用することはできませんか? 次に、テーブルビューをリロードするたびにそれを確認し、それに応じて次のボタンを無効/有効にしますか?

于 2013-02-11T10:45:42.023 に答える
0

通常、最良の方法は、オブジェクトごとにブール値を設定することだと思います。

テーブルビューに渡すオブジェクト配列があるといいのですが。

したがって、didSelectメソッドでは、配列内に少なくとも1つのオブジェクトが設定されているかどうかをFORループでチェックできます。

于 2013-02-11T10:56:47.277 に答える
0

didSelectRowAtindexPathでは、chemarkがチェックされているかどうかを確認し、チェックされている場合はチェックを外し、チェックされていない場合はチェックを行います。

実際のコードではなく、擬似コード

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
    if(checkmark checked )
    {
    un checked it
    nextButton.enabled=false;
    }
    else
    {
    checked it;
    nextButton.enabled=false;
    }

}
于 2013-02-11T10:53:03.013 に答える
0

tableView で multipleSelection を有効にします。ビューでDidLoad

tableView.allowsMultipleSelection = YES;

行を選択または選択解除するたびに、[tableView indexPathsForSelectedRows]配列の数を確認します。カウントが 0 より大きい場合は、ボタンを有効にします。それ以外の場合は無効にします。

[tableView indexPathsForSelectedRows] は NSArray を返します。

必要以上のパラメータを取る必要はありません。

于 2013-02-11T11:21:29.587 に答える