Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 651 - longPressed()はカスタムメソッドは続く

次のTable Viewのチュートリアルを拡張しています。

yataiblue.hatenablog.com

ロングプレス・ジャスチャーの最も重要なメソッドの実装をしています。

func longPressed(longPress: UILongPressGestureRecognizer) {
   print("This method's just called.")
   let state = longPress.state
...

このジェスチャーが持っている「state」プロパティはジェスチャーの状態が変化(ユーザーが操作)する度に変化するし、このメソッドが呼ばれます。ということは呼ばれる度にstateプロパティが変化したり同じだったりする訳です。

次はロングプレス・ジェスチャーはTableViewに組み込まれていますが、その中の座標情報を習得するステップです。

let locationInView = longPress.locationInView(simpleTableView)
let indexPath = simpleTableView.indexPathForRowAtPoint(locationInView)

iOSフレームワークには色々と便利なメソッドが用意されています。知らないことばかりなんでチュートリアルで遭遇するメソッドは勉強のために確認することをお勧めします。

locationInView(view: UIView>) -> CGPoint

このメソッドはジェスチャーを組み込んだView内の座標をCGPointで返します。メソッドの情報を知るためにXcodeが持っているドキュメントシステムを使います。普通なら「Help」メニューから「Documentation and API Reference」を選択するのですが、ちょっと調べたいときに手間がかかります。調べたいメソッドのところにマウスポインタを動かして「Opt*1 + クリック」をすると簡単に情報が得られます。

f:id:yataiblue:20160421113606j:plain

indexPathForRowAtPoint(point: CGPoint) -> NSIndexPath?

UITableViewクラスが持っているメソッドです。CGPointで座標を与えることでNSIndexPathを返します。このメソッドの情報も同様に「Opt + ドラッグ」で確認することができます。

f:id:yataiblue:20160421140708j:plain

まだまだiOSフレームワークに関して知らないところばかりです。理解して使えるようになるのにもう少し時間が必要です。

今日はここまで。

*1:オプションキーを押すとポインタが「?」に変化します。