class MotionKit::CALayerHelpers
Public Instance Methods
_calculate_frame(f, from: from_layer, relative_to: point)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 104 def _calculate_frame(f, from: from_layer, relative_to: point) if from_layer.is_a?(Symbol) from_layer = self.get_view(from_layer) end from_layer_size = from_layer.frame.size o = from_layer.convertPoint([0, 0], toLayer: target.superlayer) calculate_layer = CALayer.layer calculate_layer.frame = [[0, 0], target.frame.size] if f.is_a?(Hash) f = f.merge(relative: true) end f = MotionKit.calculate(calculate_layer, :frame, f, target.superlayer || parent_layout.parent) f.origin.x += o.x f.origin.y += o.y case point[:x] when :min, :reset # pass when :mid f.origin.x += (from_layer_size.width - f.size.width) / 2.0 when :max f.origin.x += from_layer_size.width - f.size.width when :before f.origin.x -= f.size.width when :after f.origin.x += from_layer_size.width else f.origin.x += point[:x] end case point[:y] when :min, :reset # pass when :mid f.origin.y += (from_layer_size.height - f.size.height) / 2.0 when :max f.origin.y += from_layer_size.height - f.size.height when :above f.origin.y -= f.size.height when :below f.origin.y += from_layer_size.height else f.origin.y += point[:y] end return f end
above(from_layer, f={})
click to toggle source
The first arg can be a layer or a frame @example
frame above(layer, [[0, 0], [100, 20]]) frame above(:layer, x: 0, y: 0, width: 100, height: 20) frame above(:layer, down: 0, right: 0, width: 100, height: 20)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 286 def above(from_layer, f={}) _calculate_frame(f, from: from_layer, relative_to: { x: :reset, y: :above }) end
add_child(subview, options={})
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_helpers.rb, line 12 def add_child(subview, options={}) target.addSublayer(subview) end
after(from_layer, f={})
click to toggle source
The first arg can be a layer or a frame @example
frame after(layer, [[0, 0], [100, 20]]) frame after(:layer, x: 0, y: 0, width: 100, height: 20) frame after(:layer, down: 0, right: 0, width: 100, height: 20)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 314 def after(from_layer, f={}) _calculate_frame(f, from: from_layer, relative_to: { x: :after, y: :reset }) end
Also aliased as: right_of
before(from_layer, f={})
click to toggle source
The first arg can be a layer or a frame @example
frame before(layer, [[0, 0], [100, 20]]) frame before(:layer, x: 0, y: 0, width: 100, height: 20) frame before(:layer, down: 0, right: 0, width: 100, height: 20)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 304 def before(from_layer, f={}) _calculate_frame(f, from: from_layer, relative_to: { x: :before, y: :reset }) end
Also aliased as: left_of
below(from_layer, f={})
click to toggle source
The first arg can be a layer or a frame @example
frame below(layer, [[0, 0], [100, 20]]) frame below(:layer, x: 0, y: 0, width: 100, height: 20) frame below(:layer, down: 0, right: 0, width: 100, height: 20)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 295 def below(from_layer, f={}) _calculate_frame(f, from: from_layer, relative_to: { x: :reset, y: :below }) end
bottom(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 40 def bottom(value) f = target.frame superview = target.superlayer || parent_layout.parent f.origin.y = MotionKit.calculate(target, :height, value, superview) - f.size.height target.frame = f return CGRectGetMaxY(f) end
center(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 83 def center(value) superview = target.superlayer || parent_layout.parent target.center = MotionKit.calculate(target, :center, value, superview) return target.center end
Also aliased as: middle
center_x(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 22 def center_x(value) c = target.center superview = target.superlayer || parent_layout.parent c.x = MotionKit.calculate(target, :width, value, superview) target.center = c return CGRectGetMidX(target.frame) end
Also aliased as: middle_x
center_y(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 48 def center_y(value) c = target.center superview = target.superlayer || parent_layout.parent c.y = MotionKit.calculate(target, :height, value, superview) target.center = c return CGRectGetMidY(target.frame) end
Also aliased as: middle_y
default_root()
click to toggle source
platform specific default root view
# File lib/motion-kit-cocoa/helpers/calayer_helpers.rb, line 8 def default_root self.class.targets.layer end
frame(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 98 def frame(value) superview = target.superlayer || parent_layout.parent target.frame = MotionKit.calculate(target, :frame, value, superview) return target.frame end
from_bottom(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_bottom(width: 80, height: 22) frame from_bottom(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 257 def from_bottom(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :mid, y: :max }) end
from_bottom_left(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_bottom_left(width: 80, height: 22) frame from_bottom_left(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 243 def from_bottom_left(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :min, y: :max }) end
from_bottom_right(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_bottom_right(width: 80, height: 22) frame from_bottom_right(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 271 def from_bottom_right(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :max, y: :max }) end
from_center(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_center(width: 80, height: 22) frame from_center(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 215 def from_center(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :mid, y: :mid }) end
from_left(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_left(width: 80, height: 22) frame from_left(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 201 def from_left(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :min, y: :mid }) end
from_right(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_right(width: 80, height: 22) frame from_right(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 229 def from_right(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :max, y: :mid }) end
from_top(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_top(width: 80, height: 22) frame from_top(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 173 def from_top(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :mid, y: :min }) end
from_top_left(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_top_left(width: 80, height: 22) frame from_top_left(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 159 def from_top_left(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :min, y: :min }) end
from_top_right(from_layer=nil, f=nil)
click to toggle source
The first arg can be a layer or a frame @example
frame from_top_right(width: 80, height: 22) frame from_top_right(another_layer, width: 80, height: 22)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 187 def from_top_right(from_layer=nil, f=nil) if from_layer.is_a?(Hash) f = from_layer from_layer = nil end f ||= {} from_layer ||= target.superlayer _calculate_frame(f, from: from_layer, relative_to: { x: :max, y: :min }) end
height(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 66 def height(value) f = target.frame superview = target.superlayer || parent_layout.parent f.size.height = MotionKit.calculate(target, :height, value, superview) target.frame = f return CGRectGetHeight(f) end
Also aliased as: h
layer()
click to toggle source
a more appropriate name for the root layer
# File lib/motion-kit-cocoa/helpers/calayer_helpers.rb, line 21 def layer self.view end
origin(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 75 def origin(value) f = target.frame superview = target.superlayer || parent_layout.parent f.origin = MotionKit.calculate(target, :origin, value, superview) target.frame = f return target.frame.origin end
relative_to(from_layer, f)
click to toggle source
The first arg must be a layer @example
frame relative_to(layer, [[0, 0], [100, 20]]) frame relative_to(:layer, x: 0, y: 0, width: 100, height: 20) frame relative_to(:layer, down: 0, right: 0, width: 100, height: 20)
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 324 def relative_to(from_layer, f) _calculate_frame(f, from: from_layer, relative_to: { x: :reset, y: :reset }) end
remove_child(subview)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_helpers.rb, line 16 def remove_child(subview) subview.removeFromSuperlayer end
right(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 14 def right(value) f = target.frame superview = target.superlayer || parent_layout.parent f.origin.x = MotionKit.calculate(target, :width, value, superview) - f.size.width target.frame = f return CGRectGetMaxX(f) end
size(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 90 def size(value) f = target.frame superview = target.superlayer || parent_layout.parent f.size = MotionKit.calculate(target, :size, value, superview) target.frame = f return target.frame.size end
width(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 57 def width(value) f = target.frame superview = target.superlayer || parent_layout.parent f.size.width = MotionKit.calculate(target, :width, value, superview) target.frame = f return CGRectGetWidth(f) end
Also aliased as: w
x(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 5 def x(value) f = target.frame superview = target.superlayer || parent_layout.parent f.origin.x = MotionKit.calculate(target, :width, value, superview) target.frame = f return CGRectGetMinX(f) end
Also aliased as: left
y(value)
click to toggle source
# File lib/motion-kit-cocoa/helpers/calayer_frame_helpers.rb, line 31 def y(value) f = target.frame superview = target.superlayer || parent_layout.parent f.origin.y = MotionKit.calculate(target, :height, value, superview) target.frame = f return CGRectGetMinY(f) end
Also aliased as: top