公開中のアプリ

[Xcode11・Swift5]メモアプリを作る#11

※この記事は初心者の方や初めてアプリを作る人を対象にしています。
動作環境 Xcode Version 11.4 Swift version 5.2

今回はスワイプしたらメモを削除できるようにしていきましょう。

今回の記事でスワイプ削除できるようになります。

コードを書いていこう

スワイプ機能を付けると言うと難しそうに感じますが、TableViewにはスワイプで行を削除する為のメソッドが用意されているので簡単にできちゃいます!

今回は「MemoTableViewController.swift」にコードを書いていきます。
「MemoTableViewController.swift」の中から下記のメソッドを見つけて5行目のコードを書くだけでOKです。
(メソッドはコメントアウトされているので解除して使って下さいね)

// Override to support editing the table view.
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {
        // Delete the row from the data source
        self.memos.remove(at: indexPath.row)    //ここに記述
        
        tableView.deleteRows(at: [indexPath], with: .fade)
    } else if editingStyle == .insert {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }
}

まずスワイプされた行が何行目かはindexPath型に入って来ます。

その事をふまえて5行目のコードを説明します。

まず、「self.memos」でメモとなる配列を指定しています。
「remove」は配列を削除する為の命令で「at:」の後に何番目の配列を削除するか指定します。
今回は「indexPath.row」番目を指定すればOKです。

7行目はTableViewから削除してくれる為の命令なのでそのまま残しておきます。

ちなみに8行目からの「else if editingStyle == .insert」でスワイプした時に削除ではなく行の挿入ができます。
今回は使わないので消しても大丈夫です!

まとめ

TableViewのスワイプ削除いかがでしたでしょうか?
簡単にできるので便利ですね!
次回はメモの編集をできるようにしましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

アプリ