質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2949閲覧

tableViewCellの一気に複数選択をする方法を知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/07/24 00:40

知りたいこと

現在考えている方法以外でもっといい方法がないか、知りたいです。

やりたいこと

tableViewCellの左側にでる check mark をボタンタップで一気に全選択することです。
(※ここで言うcheck markとは、tableViewのallowsMultipleSelectionDuringEditingメソッドを使用し、編集モードでtableViewCellの左側にでてくる複数選択ができるもの(imageView)のことです)(accessory typeではないです)

現状

tableViewCellを編集モードにした際に、allowsMultipleSelectionDuringEditingメソッドを使用し、複数選択を行うことが可能です。また、"check all"と"unselect all"のボタンを作成しており、(check markが)選択されているCellの数に応じて"check all"と"unselect all"のボタンの切り替えはできています。
イメージ説明
イメージ説明
イメージ説明

現在考えている方法

macOSのtableViewにあるselectAllメソッドのようなもののiOS版があればよかったのですが、存在しないため自作するしかないようです(もしiOSの'tableView'で使用できる上記のメソッドがあれば教えてください!!)。
なので、以下の2パターンの方法を思いついていて試しているところです。
どちらの案もallowsMultipleSelectionDuringEditingメソッドは使用し、併用します。

  1. "check all"のボタンが表示されている際は、imageViewにチェックマークの画像を設定しておき、タップを感知して画像を切り替えを行う
  2. "check all"のボタンが表示されている際は、imageViewのところにボタン(にはチェックマークの画像を設定しておく)を設置し、タップでボタンの画像の切り替えを行う

上記の2案は可能か不可能かもわからないので、そこのあたりも含めて教えていただけると嬉しいです。
また、冒頭にも書いていますが、もっといい案があれば教えていただきたいです!
よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

UITableViewのselectRowdeselectRowを使えば選択状態を変えられますので、すべてのrowに対して選択または選択解除するだけかなと思うのですが、それでは上手くいかないのでしょうか?

投稿2019/07/24 07:01

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/07/25 01:45

ご回答ありがとうございます(返信が遅くなってしまい申し訳ありません。) selectRowで試してみているのですが上手くいきません。IndexPathのrowを取得することができない(sectionは0のため大丈夫)ので、それについて別の質問を立てようと思います。
退会済みユーザー

退会済みユーザー

2019/07/25 05:04

ご回答いただいたselectRowメソッドをfor in 文内で使用したところ、上手くいきました!!ありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問