Swiftで遊ぼう! - 649 - Table ViewにLongPressGestureを実装してみる
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
- Table View実装チュートリアルをXcode7.3で解説
- Core Data シンプルチュートリアル
- 私の本業、オフィシャルなブログ-> Life-LOG
次のTable Viewのチュートリアルを拡張しています。
LongPressGesture(ロングプレス・ジャスチャー)を使ってCellを選択して順番入れ替え機能を実装していきます。
まずTableViewにUILongPressGestureRecognizerクラスを組み込む必要があります*1。TableViewにジェスチャー機能を組み込むのですが、組み込むためのコードを書くのはViewControllerになるため、viewDidLoad()メソッド内に次のコードを加えます。
let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.longPressed(_:))) simpleTableView.addGestureRecognizer(longPressGesture)
まず最初のコードですが、これはジェスチャーをインスタンス化させるイニシャライザーです。このジャスチャーで「何処に働きかけるか?」が「target」です。「self」にしているので、ViewControllerに書かれているアクション・メソッドが起動します。
ここでちょっと疑問があります。ネットで調べると、「action:」に指定する書式は、「"longPressed:"」*2のようにString型で記述する方法で説明されています。Xcode7.3で記述してもエラーにはならないのですが警告が出るんです。「Objective-Cスタイルなので#selectorを使うように提案されます。それを選ぶと上記のようなコードになります*3。この書き方が推奨されているのでしょうか?
ロング・プレスジェスチャーをインスタンス化したので、これをsimpleTableViewに組み込んで準備完了です。
今日はこれまで。