Sha256: 2bb7c2d77c87951fbd3e27c561780d5190808ca50d489505c7d638dbf9dcbf43
Contents?: true
Size: 1.9 KB
Versions: 1
Compression:
Stored size: 1.9 KB
Contents
class CAAnimation class << self private def _sugarcube_apply_animation_options(animation, options) animation.duration = options[:duration] if options.key?(:duration) animation.delegate = options[:delegate] if options.key?(:delegate) animation.speed = options[:speed] if options.key?(:speed) animation.repeatCount = options[:repeat] if options.key?(:repeat) animation.repeatCount = options[:repeat_count] if options.key?(:repeat_count) animation.repeatDuration = options[:repeat_duration] if options.key?(:repeat_duration) animation.removedOnCompletion = options.fetch(:remove, true) end # If you pass a block, that block will be called at the end of the # animation. def basic(key_path, options={}, &block) animation = CABasicAnimation.animationWithKeyPath(key_path) _sugarcube_apply_animation_options(animation, options) if options.key?(:from) || options.key?(:to) || options.key?(:by) animation.fromValue = options[:from] if options.key?(:from) animation.toValue = options[:to] if options.key?(:to) animation.byValue = options[:by] if options.key?(:by) end return animation end def keyframe(key_path, options={}, &block) timing_function = options.fetch(:timing, KCAMediaTimingFunctionDefault) if timing_function.is_a?(NSString) timing_function = CAMediaTimingFunction.functionWithName(timing_function) end fill_mode = options.fetch(:fill_mode, KCAFillModeForwards) animation = CAKeyframeAnimation.animationWithKeyPath(key_path) _sugarcube_apply_animation_options(animation, options) animation.timingFunction = timing_function animation.fillMode = fill_mode if options.key?(:values) animation.values = options[:values] elsif options.key?(:path) animation.path = options[:path] end return animation end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sugarcube-1.6.0 | lib/sugarcube-animations/caanimation.rb |