module MotionKit
@requires MotionKit::Calculator
@requires module:MotionKit::OriginCalculator @requires module:MotionKit::SizeCalculator @requires module:MotionKit::FrameCalculator @provides MotionKit::ViewCalculator
@provides MotionKit::Constraint
@provides MotionKit::CompoundConstraint
@provides MotionKit::ConstraintsHelpers
@requires MotionKit::BaseLayout
@requires MotionKit::ConstraintsTarget
@provides MotionKit::ConstraintsTarget
@requires MotionKit::CompoundConstraint
@requires MotionKit::CompoundConstraint
These methods are defined on NSObject, and so we need to fix em.
@requires MotionKit::BaseLayout
@provides MotionKit::CAGradientLayerHelpers
@requires MotionKit::CALayerHelpers
@requires MotionKit::TreeLayout
@requires MotionKit::CALayerHelpers
@provides MotionKit::CALayerHelpers
@requires MotionKit::TreeLayout
These methods are defined in SugarCube's REPL helpers, but we want them to be delegated to either `UIViewHelpers#frame` or `CALayer#setFrame`
@requires MotionKit::BaseLayout
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIButtonHelpers
@requires MotionKit::CALayerHelpers
@requires MotionKit::CAGradientLayerHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::BaseLayout
@requires MotionKit::BaseLayout
@provides MotionKit::UIButtonHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@provides MotionKit::Layout
@provides MotionKit::UIViewHelpers
@requires MotionKit::TreeLayout
@requires MotionKit::NSWindowHelpers
@requires MotionKit::NSViewHelpers
@requires MotionKit::NSTableViewHelpers
@requires MotionKit::NSTableColumnHelpers
@requires MotionKit::NSMenuHelpers
@requires MotionKit::CALayerHelpers
@requires MotionKit::CAGradientLayerHelpers
@requires MotionKit::NSViewHelpers
@requires MotionKit::NSMenuHelpers
@provides MotionKit::MenuLayout
@provides MotionKit::NSMenuHelpers
@requires MotionKit::TreeLayout
@requires MotionKit::NSMenuHelpers
@provides MotionKit::NSTableColumnHelpers
@requires MotionKit::BaseLayout
@provides MotionKit::NSTableViewHelpers
@requires MotionKit::NSViewHelpers
@requires MotionKit::NSViewHelpers
@requires MotionKit::NSViewHelpers
@requires MotionKit::NSViewHelpers
@provides MotionKit::Layout
@provides MotionKit::NSViewHelpers
@requires MotionKit::TreeLayout
@requires MotionKit::NSWindowHelpers
@provides MotionKit::WindowLayout
@provides MotionKit::NSWindowHelpers
@requires MotionKit::TreeLayout
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIButtonHelpers
@requires MotionKit::CALayerHelpers
@requires MotionKit::CAGradientLayerHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::BaseLayout
@requires MotionKit::BaseLayout
@provides MotionKit::UIButtonHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@requires MotionKit::UIViewHelpers
@provides MotionKit::Layout
@provides MotionKit::UIViewHelpers
@requires MotionKit::TreeLayout
@requires MotionKit::ViewCalculator
@provides MotionKit::Calculator
@provides module:MotionKit::FrameCalculator
@provides module:MotionKit::OriginCalculator
@provides module:MotionKit::SizeCalculator
@provides MotionKit::BaseLayout
@requires MotionKit::BaseLayoutClassMethods
@provides MotionKit::BaseLayoutClassMethods
@provides MotionKit::Parent
@provides MotionKit::TreeLayout
@requires MotionKit::BaseLayout
@provides MotionKit::Error
Constants
- VERSION
Public Instance Methods
# File lib/motion-kit-ios/ios_util.rb, line 4 def appearance_class @appearance_klass ||= UIView.appearance.class end
# File lib/motion-kit-ios/ios_util.rb, line 8 def base_view_class UIView end
# File lib/motion-kit/calculator/calculate.rb, line 5 def calculate(view, dimension, amount, full_view=nil) ViewCalculator.calculate(view, dimension, amount, full_view) end
# File lib/motion-kit/util.rb, line 8 def camel_case(str) str.split('_').map(&:capitalize).join end
# File lib/motion-kit-cocoa/cocoa_util.rb, line 13 def children(view) case view when CALayer view.sublayers else view.subviews end end
# File lib/motion-kit-ios/ios_util.rb, line 16 def color_class UIColor end
# File lib/motion-kit-ios/ios_util.rb, line 12 def default_view_class UIView end
-
check view
-
check subviews (unless 'skip' is provided)
-
check siblings (skipping 'view')
-
go up to parent and repeat, skipping children
# File lib/motion-kit-cocoa/cocoa_util.rb, line 35 def nearest(view, skip=nil, &test) return nil if view.nil? if test.call(view) return view end children = MotionKit.children(view) siblings = MotionKit.siblings(view) parent = MotionKit.parent(view) found = nil # only check the children starting at the "root", e.g. nearest hasn't been # called recursively. if !skip || skip == parent children.each do |child| found = nearest(child, &test) break if found end return found if found end # siblings are closer than parents # passing 'parent' means only check self and children unless skip == parent siblings.each do |sibling| found = (sibling != view && nearest(sibling, parent, &test)) break if found end end if found found elsif skip != parent nearest(parent, true, &test) end end
# File lib/motion-kit-ios/ios_util.rb, line 20 def no_intrinsic_metric UIViewNoIntrinsicMetric end
# File lib/motion-kit/util.rb, line 4 def objective_c_method_name(str) str.split('_').inject([]) { |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join end
# File lib/motion-kit-cocoa/cocoa_util.rb, line 22 def parent(view) case view when CALayer view.superlayer else view.superview end end
# File lib/motion-kit/util.rb, line 12 def setter(method_name) setter = "set#{method_name[0].capitalize}#{method_name[1..-1]}" unless setter.end_with?(':') setter << ':' end setter end
# File lib/motion-kit-cocoa/cocoa_util.rb, line 4 def siblings(view) case view when CALayer view.superlayer ? view.superlayer.sublayers : [] else view.superview ? view.superview.subviews : [] end end