Tableの編集モードの使い方。セルの並び替え、削除をする。Tableの編集モードの使い方。セルの並び替え、削除をする。テーブルビューのさらに嬉しい機能の「編集モード」について説明する。編集モードとは、テーブルビューのデータを並べ替えたり、削除したりできるモードのことで、アプリ起動中にモードを変更しながら利用する。編集モードを試す編集モードを試してみよう。テーブルビューをデバイス画面に配置する。Ctrlキーを押しながらテーブルビューをデバイス画面の上にある黄色い丸に運び、ポップアップで表示されたメニューから「dataSource」を選択する。一度テーブルビューを黄色い丸に運び、今度は「delegate」を選択する。View」をクリックしたあとにアトリビュートインスペクタボタン(黄緑枠)を押して設定画面を表示する。Cell(水色枠)」が追加される。Cell」をクリックしたあとにIdentifier(黄枠)に「TestCell」を入力する。次に、テーブルビューを通常モードと編集モードに切り替えるためのボタンを配置する(下図赤矢印)。続いて、黄緑枠のボタンを押してアシスタントエディタを開き、Ctrlキーを押しながらボタンをソースコードまで運ぶ(下図青枠)。吹き出しの設定画面が表示されるので、Connectionに「Action」、Nameに「changeMode」を入力してConnectボタンを押す。これで、ボタンを押した時に実行されるメソッドが追加された。次に、Ctrlキーを押しながらテーブルビューをソースコードまで運ぶ(下図紫枠)。吹き出しの設定画面が表示されるので、Connectionに「Outlet」、Nameに「testViewTable」を入力してConnectボタンを押す。これで、ソースコードからテーブルビューを操作できるようになった。以下のコードは、テーブルビューの通常モードと編集モードを切り替えるコードの実装例。「データを返すメソッド」と「データの個数を返すメソッド」はテーブルビューにデータを表示するためのUITableViewDataSourceプロトコルの必須メソッドである。「ボタン押下時に呼ばれるメソッド」では、テーブルビューが通常モードのときは編集モードに、編集モードのときは通常モードに切り替える作りにしている。テーブルビューの通常モードと編集モードを切り替える。//通常モードと編集モードを切り替える。テーブルビューの通常モードと編集モードを切り替える。{//セルを取得する。{//通常モードと編集モードを切り替える。上記コードを実行すると、編集モードで削除ボタンを表示することはできるが、実際に削除することができない。削除するには以下のメソッドを追加する。このメソッドはビューが編集されるときに呼び出されるメソッドで、配列からデータを削除し、テーブルビューの再読み込みを実施している。//削除の場合、配列からデータを削除する。{//削除の場合、配列からデータを削除する。削除できるデータを制限する初期状態では編集モードにしたときにすべてのセルが編集できるようになっている。特定のセルやセクションは編集できないようにしたい場合は以下のメソッドを追加する。このメソッドはビューの表示処理が実行されるときにデータの個数ぶん呼び出される。編集したくないセルのインデックス番号のときはfalseを返すようにすれば、その行に削除ボタンは表示されなくなる。//最初の2行は削除不可にする。{//最初の2行は削除不可にする。true}}以下は実際のプレイ動画。1~2行目は削除ボタンが表示されなくなった。データの並び替えセルの並び替えをしたい場合は以下のメソッドを追加する。元の位置のインデックスと移動先のインデックスが引数で渡ってくるので、テーブルビューに表示するための元データを編集する。ここでデータを編集しておかないと、テーブルの再読み込みがされたときに並び順がもとに戻ってしまう。//移動されたデータを取得する。//元の位置のデータを配列から削除する。//移動先の位置にデータを配列に挿入する。NSIndexPath){//移動されたデータを取得する。tableView.cellForRowAtIndexPath(sourceIndexPath)?.textLabel!.text//元の位置のデータを配列から削除する。dataList.removeAtIndex(sourceIndexPath.row)//移動先の位置にデータを配列に挿入する。atIndex:destinationIndexPath.row)}以下は実際のプレイ動画。先ほど追加した「編集可否を答えるメソッド」によって1~2行目は並び替えをすることができなくなった。並び替えできるデータを制限する編集はできるようにして、並び替えだけできないようにしたい行がある場合は以下のメソッドを追加する。//青山さん以外の行は並び替え不可にする。dataList[indexPath.row]//青山さん以外の行は並び替え不可にする。true}}「編集可否を答えるメソッド」を削除して、上記の「並び替え可否を答えるメソッド」を実装した場合は以下の動画のようになる。削除はすべての行で可能だが、並び替えは青山さんの行しかできなくなった。編集モードでデータを選択できるようにするテーブルビューの記事で、設定項目のEditingについては編集モードの記事で動作確認をすると言ったので確認する。⇒「記事」デバイス画面のテーブルビューをクリックしたあとに下図赤枠のアトリビュートインスペクタボタンを押して設定画面を表示する。Editing」に変更してアプリを起動する。以下は実際のプレイ動画。編集モードでもセルを選択できるようになった。Controllerの使い方。検索されたら検索結果用のビューコントローラーを呼び出す。...【Swift】UICollectionViewLayoutの使い方。コレクションビューのセルの配置をカスタマイズする。テーブルをビヨーンと引っ張って更新する。テーブルに表示するデータ1つ1つの入れ物。Controllerの使い方。格子状に並んだセルをタップして画面遷移する。コメントをキャンセルメールアドレスが公開されることはありません。