lib/sugarcube-animations/caanimation.rb in sugarcube-1.6.0 vs lib/sugarcube-animations/caanimation.rb in sugarcube-1.6.1
- old
+ new
@@ -15,16 +15,16 @@
# 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)
+ fill_mode = options.fetch(:fill_mode, KCAFillModeForwards)
+ animation.fillMode = fill_mode
- 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
+ animation.fromValue = options[:from] if options.key?(:from)
+ animation.toValue = options[:to] if options.key?(:to)
+ animation.byValue = options[:by] if options.key?(:by)
return animation
end
def keyframe(key_path, options={}, &block)
@@ -40,10 +40,18 @@
animation.fillMode = fill_mode
if options.key?(:values)
animation.values = options[:values]
elsif options.key?(:path)
- animation.path = options[:path]
+ path = options[:path]
+ if path.is_a?(UIBezierPath)
+ p = UIBezierPath.bezierPath
+ p.moveToPoint([0, 0])
+ p.addCurveToPoint([1, 0], controlPoint1: [0.9, 0], controlPoint2: [0.1, 0])
+
+ path = path.CGPath
+ end
+ animation.path = path
end
return animation
end