14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swift3でテーブルのセルを横にずらせる(スワイプできる)ようにする

Posted at

Swift3でテーブルのセルを横にずらす(スワイプできる)ようにする

今回の目標

テーブルのセルをスライドできるようにする。

Qiita用テーブルセルスライド.png

開発環境

  • Xcode:8.2.1
  • 言語:Swift 3
  • OS:MacOS

実行方法

事前準備としてテーブルの表示ができるようにしておきます。

その後、下記二つのメソッドを追加します。

追加メソッド

  • func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {}
  • func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {}

一つ目のメソッドでアクションを追加して、二つ目のメソッドでアクションを許可しています。

サンプルコード

ViewVontroller.swift
    // Cellのスワイプメソッドを実装します
    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
        let swipeCellA = UITableViewRowAction(style: .default, title: "内容A") { action, index in
            self.swipeContentsTap(content: "CellA", index: index.row) // 押されたときの動きを定義しています
        }
        let swipeCellB = UITableViewRowAction(style: .default, title: "内容B") { action, index in
            self.swipeContentsTap(content: "CellB", index: index.row)
        }
        let swipeCellC = UITableViewRowAction(style: .default, title: "内容C") { action, index in
            self.swipeContentsTap(content: "CellC", index: index.row)
        }
        swipeCellA.backgroundColor = .blue // 背景色
        swipeCellB.backgroundColor = .red
        swipeCellC.backgroundColor = .green

        return [swipeCellC, swipeCellB, swipeCellA] // A,B,Cという順で表示される
    }

    // trueを返すことでCellのアクションを許可しています
    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
    }

    // 独自に作成した押されたとき用のメソッド。Cell番号と押された内容をprint
    func swipeContentsTap(content: String, index: Int) { 
        print("タップされたのは" + index.description + "番のセルで" + "内容は" + content + "でした")
    }
14
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?