Method: SugarCube::Repl.blink

Defined in:
lib/ios/sugarcube-repl/repl.rb,
lib/osx/sugarcube-repl/repl.rb


60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/ios/sugarcube-repl/repl.rb', line 60

def blink(color=nil)
  return unless check_sugarcube_view

  blinking_view = UIView.alloc.initWithFrame([[0,0], @sugarcube_view.frame.size])
  color = color.uicolor if color.respond_to?(:uicolor)
  blinking_view.backgroundColor = color
  blinking_view.alpha = 0
  if @sugarcube_view.window
    blinking_view.frame = @sugarcube_view.convertRect([[0, 0], @sugarcube_view.frame.size], toView: @sugarcube_view.window)
    @sugarcube_view.window.addSubview(blinking_view)
  else
    @sugarcube_view.addSubview(blinking_view)
  end

  duration = 0.2
  UIView.animateWithDuration(duration * 2, animations: ->{ blinking_view.alpha = 1 }, completion: ->(finished) do
    UIView.animateWithDuration(duration, animations: ->{ blinking_view.alpha = 0 }, completion: ->(finished) do
      UIView.animateWithDuration(duration, animations: ->{ blinking_view.alpha = 1 }, completion: ->(finished) do
        UIView.animateWithDuration(duration, animations: ->{ blinking_view.alpha = 0 }, completion: ->(finished) do
          blinking_view.removeFromSuperview
        end)
      end)
    end)
  end)
end