2018正版葡京赌侠诗 1

简介

Pop
是一个而扩大的卡通引擎,可用于实现任意iOS对象的任意属性的动态变化,支持一般动画,弹性动画以及潜移默化动画三种类型.

  • 类型主页: pop

  • 时示例: 点击下载

  • 在意:
    官方代码中,并无带有实例,而是用来编译的有源代码,建议活动新建工程,并结合下文的代码有查看效果.

入门

安装

通过CocoaPods安装

pod 'pop', '~> 1.0'

使用

当得用POP的地方,引入头文件:

#import <pop/POP.h>

动画片的始发,停止 与 更新

把动画长到你想只要享有动态变化的对象方面,即可开始动画:

POPSpringAnimation *anim = [POPSpringAnimation animation];
...
[layer pop_addAnimation:anim forKey:@"myKey"];

可依据初步动画时传出的键,来移除对应之卡通:

[layer pop_removeAnimationForKey:@"myKey"];

初步动画时传出的键,也可用来询问是否有有动画.更新一个方实施的卡通的
toValue,可以无缝实现动画效果间的接:

anim = [layer pop_animationForKey:@"myKey"];
if (anim) {
  /* 更新toValue为一个新值. */
  anim.toValue = @(42.0);
} else {
  /* 创建并开始一个新的动画. */
  ....
}

方的例子是盖图层为例.Pop是为NSObject的扩张方式实现的.也便是说:
任何NSObject及其子类都好透过Pop添加动画效果.

动画片类型

来四种植动画类型: 弹性动画,渐弱动画,基础动画以及由自然义动画.

弹性动画

弹性动画,可以于目标一个发出活力之弹奏跳效果.下面的例证中,我们以弹性动画来而图层的底限框值从它的眼前价变化为(0,
0 ,400, 400):

POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerBounds];
anim.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 400, 400)];
[layer pop_addAnimation:anim forKey:@"size"];

潜移默化动画

潜移默化动画,可以让对象缓慢地已变化.下面的例子,我们要图层的横坐标从眼前价为1000像素每秒的速逐年变:

POPDecayAnimation *anim = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPositionX];
anim.velocity = @(1000.);
[layer pop_addAnimation:anim forKey:@"slide"];

基本功动画

基本功动画可以据此来当指定的时间段动态改变属性之值.在默认的日子周期内动态为视图的透明度从0.0扭转及1.0来促成淡入的功力:

POPBasicAnimation *anim = [POPBasicAnimation animationWithPropertyNamed:kPOPViewAlpha];
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
anim.fromValue = @(0.0);
anim.toValue = @(1.0);
[view pop_addAnimation:anim forKey:@"fade"];

由定义动画

POPCustomAnimation 用来创造于定义动画以及联网效果.它经过管制
CADisplayLink 来治本时间与动画片的关联性.更多细节,详见头文件.

卡通属性

动画属性由POPAnimatableProperty仿佛管理,用来指定在谁属性上应用动画效果.在下面的例子中,我们创建了一个弹性动画,并且亮设置动画属性也同-[CALayer bounds]相应2018正版葡京赌侠诗之性:

POPSpringAnimation *anim = [POPSpringAnimation animation];
anim.property = [POPAnimatableProperty propertyWithName:kPOPLayerBounds];

此框架爱预先实现了了众多图层和视图共用底动画片属性,你得当投机之档次受到直接使用.你呢足以由此创设POPAnimatableProperty恍如的实例,来创造一个自定义的动画片属性.下面的例子中,我们定义了一个自定义的volume动画属性:

prop = [POPAnimatableProperty propertyWithName:@"com.foo.radio.volume" initializer:^(POPMutableAnimatableProperty *prop) {
  // 读取动画属性的值
  prop.readBlock = ^(id obj, CGFloat values[]) {
    values[0] = [obj volume];
  };
  // 设置动画属性的值.
  prop.writeBlock = ^(id obj, const CGFloat values[]) {
    [obj setVolume:values[0]];
  };
  // 力学上的临界值
  prop.threshold = 0.01;
}];

anim.property = prop;

网预定义的动画属性也是出于点例子的建制定义的,自定义动画属性时,很有借鉴价值.完整的预定义的动画片属性列表和他们实现之切切实实细节参见POPAnimatableProperty.h:

/**
 图层(CALayer)通用动画属性.
 */
extern NSString * const kPOPLayerBackgroundColor;
extern NSString * const kPOPLayerBounds;
extern NSString * const kPOPLayerCornerRadius;
extern NSString * const kPOPLayerBorderWidth;
extern NSString * const kPOPLayerBorderColor;
extern NSString * const kPOPLayerOpacity;
extern NSString * const kPOPLayerPosition;
extern NSString * const kPOPLayerPositionX;
extern NSString * const kPOPLayerPositionY;
extern NSString * const kPOPLayerRotation;
extern NSString * const kPOPLayerRotationX;
extern NSString * const kPOPLayerRotationY;
extern NSString * const kPOPLayerScaleX;
extern NSString * const kPOPLayerScaleXY;
extern NSString * const kPOPLayerScaleY;
extern NSString * const kPOPLayerSize;
extern NSString * const kPOPLayerSubscaleXY;
extern NSString * const kPOPLayerSubtranslationX;
extern NSString * const kPOPLayerSubtranslationXY;
extern NSString * const kPOPLayerSubtranslationY;
extern NSString * const kPOPLayerSubtranslationZ;
extern NSString * const kPOPLayerTranslationX;
extern NSString * const kPOPLayerTranslationXY;
extern NSString * const kPOPLayerTranslationY;
extern NSString * const kPOPLayerTranslationZ;
extern NSString * const kPOPLayerZPosition;
extern NSString * const kPOPLayerShadowColor;
extern NSString * const kPOPLayerShadowOffset;
extern NSString * const kPOPLayerShadowOpacity;
extern NSString * const kPOPLayerShadowRadius;

/**
 图形层(CAShapeLayer)通用动画属性.
  */
extern NSString * const kPOPShapeLayerStrokeStart;
extern NSString * const kPOPShapeLayerStrokeEnd;
extern NSString * const kPOPShapeLayerStrokeColor;
extern NSString * const kPOPShapeLayerFillColor;

/**
 视图约束(NSLayoutConstraint)通用动画属性.
  */
extern NSString * const kPOPLayoutConstraintConstant;

/**
 视图(UIView)通用动画属性.
 */
extern NSString * const kPOPViewAlpha;
extern NSString * const kPOPViewBackgroundColor;
extern NSString * const kPOPViewBounds;
extern NSString * const kPOPViewCenter;
extern NSString * const kPOPViewFrame;
extern NSString * const kPOPViewScaleX;
extern NSString * const kPOPViewScaleXY;
extern NSString * const kPOPViewScaleY;
extern NSString * const kPOPViewSize;
extern NSString * const kPOPViewTintColor;

/**
 滚动视图(UIScrollView)通用动画属性.
 */
extern NSString * const kPOPScrollViewContentOffset;
extern NSString * const kPOPScrollViewContentSize;
extern NSString * const kPOPScrollViewZoomScale;
extern NSString * const kPOPScrollViewContentInset;

/**
 列表(UITableView)通用动画属性.
 */
extern NSString * const kPOPTableViewContentOffset;
extern NSString * const kPOPTableViewContentSize;

/**
 集合视图(UICollectionView)通用动画属性.
 */
extern NSString * const kPOPCollectionViewContentOffset;
extern NSString * const kPOPCollectionViewContentSize;

/**
 导航栏(UINavigationBar)通用动画属性.
 */
extern NSString * const kPOPNavigationBarBarTintColor;

/**
 工具栏(UIToolBar)通用动画属性.
 */
extern NSString * const kPOPToolbarBarTintColor;

/**
 标签栏(UITabBar)通用动画属性.
 */
extern NSString * const kPOPTabBarBarTintColor;

/**
 标签(UILabel)通用动画属性.
 */
extern NSString * const kPOPLabelTextColor;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图