Class: MotionWiretap::WiretapView

Inherits:
WiretapKvo show all
Defined in:
lib/motion-wiretap/ios/wiretap_ios.rb,
lib/motion-wiretap/osx/wiretap_osx.rb

Direct Known Subclasses

WiretapControl

Instance Attribute Summary

Attributes inherited from WiretapKvo

#property

Attributes inherited from WiretapTarget

#target

Attributes inherited from Wiretap

#value

Instance Method Summary collapse

Methods inherited from WiretapKvo

#bind_to, #observeValueForKeyPath

Methods inherited from Wiretap

#and_then, #cancel!, #combine, #dealloc, #enqueue, #filter, #listen, #map, #on_error, #queue, #reduce, #trigger_changed, #trigger_changed_on, #trigger_completed, #trigger_completed_on, #trigger_error, #trigger_error_on

Constructor Details

#initialize(target, &block) ⇒ WiretapView

Returns a new instance of WiretapView.



7
8
9
10
# File 'lib/motion-wiretap/ios/wiretap_ios.rb', line 7

def initialize(target, &block)
  super
  @gesture_recognizers = []
end

Instance Method Details

#handle_gesture(gesture) ⇒ Object



40
41
42
# File 'lib/motion-wiretap/ios/wiretap_ios.rb', line 40

def handle_gesture(gesture)
  trigger_changed(gesture)
end

#on(recognizer, options = nil, &block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/motion-wiretap/ios/wiretap_ios.rb', line 12

def on(recognizer, options=nil, &block)
  if recognizer
    case recognizer
    when :tap
      recognizer = Gestures.tap(self, options)
    when :pinch
      recognizer = Gestures.pinch(self, options)
    when :rotate
      recognizer = Gestures.rotate(self, options)
    when :swipe
      recognizer = Gestures.swipe(self, options)
    when :pan
      recognizer = Gestures.pan(self, options)
    when :press
      recognizer = Gestures.press(self, options)
    else
      raise GestureNotFound.new(recognizer.to_s)
    end

    self.target.addGestureRecognizer(recognizer)
    @gesture_recognizers << recognizer
  end

  listen(&block) if block

  return self
end

#teardownObject



44
45
46
47
48
49
50
# File 'lib/motion-wiretap/ios/wiretap_ios.rb', line 44

def teardown
  remove_gesture = (-> (recognizer) {
    self.target.removeGestureRecognizer(recognizer)
  }).weak!
  @gesture_recognizers.each(&remove_gesture)
  super
end