【Swift5】UITableView(Collection)に長押し機能を追加する

仕様としてはめっちゃ使うやーつなのに、デフォルトでは実装されていない長押し機能さん。
結構サクサクっと実装できちゃうので、容易に使い回すためにも残しておこうと思います。

開発環境(前提条件)

・Xcode11.5
・Swift5

実装方法

UITableViewCell や UICollectionViewCell などのセルに実装するパターンが見受けられますが、セルの数が膨大な場合はよくないので、UITableView や UICollectionView に追加する方法を採用しましょう。
コード内では UICollectionView に追加する方法を書き記しますが、UITableView でもほぼほぼ同じです。

これだけッ
セルに毎回 addGestureRecognizer(_:) するとコード的にもメモリ的にも無駄パーティ開催しちゃうので、大元である UITableView や UICollectionView に一度だけ addGestureRecognizer(_:) する感じにして、ちょいエコ感を出しています。

さいごに

この長押し機能ってデフォルトの機能でもいいと思うけどなぁ
SwiftUI とかだと実装されてたりするのかな…まだ深く触ってないから知らんけど。

コメント