123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // Copyright 2016 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef IOS_CHROME_COMMON_MATERIAL_TIMING_H_
- #define IOS_CHROME_COMMON_MATERIAL_TIMING_H_
- #import <CoreGraphics/CoreGraphics.h>
- #import <QuartzCore/QuartzCore.h>
- #import <UIKit/UIKit.h>
- namespace ios {
- namespace material {
- extern const CGFloat kDuration0;
- extern const CGFloat kDuration1;
- extern const CGFloat kDuration2;
- extern const CGFloat kDuration3;
- extern const CGFloat kDuration4;
- extern const CGFloat kDuration5;
- extern const CGFloat kDuration6;
- extern const CGFloat kDuration7;
- extern const CGFloat kDuration8;
- // Type of material timing curve.
- typedef NS_ENUM(NSUInteger, Curve) {
- CurveEaseInOut,
- CurveEaseOut,
- CurveEaseIn,
- CurveLinear,
- };
- // Per material spec, a motion curve with "follow through".
- CAMediaTimingFunction* TransformCurve2();
- // Returns a timing function related to the given |curve|.
- CAMediaTimingFunction* TimingFunction(Curve curve);
- } // material
- } // ios
- @interface UIView (CrMaterialAnimations)
- // Performs a standard UIView animation using a material timing |curve|.
- // Note: any curve option specified in |options| will be ignored in favor of the
- // specified curve value.
- // See also: +[UIView animateWithDuration:delay:animations:completion].
- + (void)cr_animateWithDuration:(NSTimeInterval)duration
- delay:(NSTimeInterval)delay
- curve:(ios::material::Curve)curve
- options:(UIViewAnimationOptions)options
- animations:(void (^)(void))animations
- completion:(void (^)(BOOL finished))completion;
- @end
- #endif // IOS_CHROME_COMMON_MATERIAL_TIMING_H_
|