RubyMotionSamples 確認 (2)

以下なカンジの記述があり

  def touchesMoved(touches, withEvent:event)
    @moved = true
    setNeedsDisplay  
  end

setNeedsDisplay て何でしょ、と思ってたら drawRect 呼び出してくれ、な予約をしてるのですね。成程。Hello は理解できた、のかな。

次は

GestureTable を確認の方向。なかなかにおもろげ。つうか Simulator だと pinch な操作ができないです。ええと掘削開始してみます。まず基点は AppDelegate なクラス。
細かい部分はスルーとして UIWindow なオブジェクトの rootViewController 属性に UINabigationController なオブジェクトが代入されてます。initRootViewController メソドに渡されているのが UITableViewController を継承した ViewController なクラスのオブジェクトになってます。
これ、以下なソレで表示するナニを用意してる、と見て良いのかどうか。

  def loadView
    self.tableView = UITableView.new

    @rows = ['Swipe to the right to complete', 'Swipe to left to delete', 'Drag down to create a new cell', 'Pinch two rows apart to create cell', 'Long hold to start reorder cell']

初期表示されているのがこの文字列な配列だったはずなのでビンゴなはず。
# rake で初期表示確認したらそのまんまでした
# 色は微妙に変えてるみたいですが、まだその箇所は特定できてません

ViewController の loadView で初期化されているオブジェクト

末端のあたりに以下な記述があります。

    @tableViewRecognizer = GestureRecognizer.alloc.initWithTableView(self.tableView, delegate:self)

実はこの GestureRecognizer というクラスは特別な iOS なクラスを継承してる訳ではなかったりしています。とは言え

  • delegate という属性で ViewController なオブジェクトの参照を保持
  • ViewController が持ってる UITableView なオブジェクトの参照も保持
  • UI*GestureRecognizer なオブジェクトも属性として保持

つーあたりを踏まえて

ViewController および GestureRecognizer のあたりを掘削な方向。