class Motion::GridOverlayView

Constants

DEFAULTS

Attributes

stroke_color[R]
stroke_width[R]
x_interval[RW]
x_lines[R]
y_interval[RW]
y_lines[R]

Public Instance Methods

drawRect(rect) click to toggle source
Calls superclass method
# File lib/project/views/grid_overlay_view.rb, line 54
def drawRect(rect)
  super

  setup_drawing

  CGContextClearRect(context, bounds)

  unless hidden?
    draw_horizontal_lines
    draw_vertical_lines

    fill_path
  end
end
initWithFrame(frame) click to toggle source
Calls superclass method
# File lib/project/views/grid_overlay_view.rb, line 11
def initWithFrame(frame)
  super.tap do |view|
    view.backgroundColor = UIColor.clearColor

    self.x_lines      = DEFAULTS[:x_lines]
    self.y_lines      = DEFAULTS[:y_lines]
    @stroke_color = DEFAULTS[:stroke_color]
    @stroke_width = DEFAULTS[:stroke_width]
  end
end
stroke_color=(color) click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 48
def stroke_color=(color)
  @stroke_color = color

  setNeedsDisplay
end
stroke_width=(width) click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 42
def stroke_width=(width)
  @stroke_width = width

  setNeedsDisplay
end
toggle() click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 22
def toggle
  setHidden(!hidden?)

  setNeedsDisplay
end
x_lines=(lines) click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 28
def x_lines=(lines)
  @x_lines = lines
  self.y_interval = frame.size.height / (lines + 1)

  setNeedsDisplay
end
y_lines=(lines) click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 35
def y_lines=(lines)
  @y_lines = lines
  self.x_interval = frame.size.width / (lines + 1)

  setNeedsDisplay
end

Private Instance Methods

context() click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 103
def context
  @context ||= UIGraphicsGetCurrentContext()
end
draw_horizontal_lines() click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 77
def draw_horizontal_lines
  draw_line([0, 0], [size.width, 0])

  (1..x_lines).each do |i|
    draw_line([0, y_interval * i], [size.width, y_interval * i])
  end

  draw_line([0, size.height], [size.width, size.height])
end
draw_line(start_point, end_point) click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 97
def draw_line(start_point, end_point)
  CGContextMoveToPoint(context, start_point[0], start_point[1])

  CGContextAddLineToPoint(context, end_point[0], end_point[1])
end
draw_vertical_lines() click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 87
def draw_vertical_lines
  (1..y_lines).each do |i|
    draw_line([x_interval * i, 0], [x_interval * i, size.height])
  end
end
fill_path() click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 93
def fill_path
  CGContextStrokePath(context)
end
setup_drawing() click to toggle source
# File lib/project/views/grid_overlay_view.rb, line 71
def setup_drawing
  CGContextSetStrokeColorWithColor(context, stroke_color.colorWithAlphaComponent(0.5).CGColor)

  CGContextSetLineWidth(context, stroke_width)
end