1. ホーム
  2. swift

[解決済み] iOS 9のスワイプ可能なテーブルビューセル

2023-04-15 16:45:46

質問

iOS 8 (初出はiOS 7)のように、テーブルリストにスワイプ可能なメニューを持たせたいのですが、可能ですか?

私が見つけたのは レイ・ウェンダーリッヒのガイドがわかりやすい を見つけましたが、それは1年4ヶ月前に書かれたもので、コードはObjective-Cです。

iOS 8 または今度の iOS 9 では、ついにこの機能が Apple の SDK に含まれるようになったのでしょうか。私は、彼らが何年も前に "スワイプして削除を表示する機能" を内蔵させたことを知っています。もし Apple の新しい iOS がきれいに包装されたパッケージで渡してくれるなら、iOS 8 のメール機能を模倣するためにパッチを適用したコードを実装して時間を無駄にしたくありません。

どのように解決するのか?

Swift 3 用に更新されたこれを試してみてください ( 開発者向けドキュメント )

override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {
    let more = UITableViewRowAction(style: .normal, title: "More") { action, index in
        print("more button tapped")
    }
    more.backgroundColor = .lightGray
    
    let favorite = UITableViewRowAction(style: .normal, title: "Favorite") { action, index in
        print("favorite button tapped")
    }
    favorite.backgroundColor = .orange
    
    let share = UITableViewRowAction(style: .normal, title: "Share") { action, index in
        print("share button tapped")
    }
    share.backgroundColor = .blue
    
    return [share, favorite, more]
}

これも実装してください。(条件付きにすることも可能ですが、ここではすべて編集可能です)

override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}