首发博客:标哥的技术博客
中文文档
HYBControllerTransitions是自定义围场动画API封装类库,使用简便。使用者不需要了解太多转场动画知识,即可轻松接入项目使用。
这是一个给开发者们提供自定义push、pop、dismiss和present转场动画的开源组件。现在库中支持泡泡放大缩小围场、模态半屏转场和移动切换转场(KeyNote某转场效果)。对于开发者们来说,这是一个很不错的开源库。开发者不需要了解转场知识,只需要简单一个API就可以实现对应的功能。
如果想要更深入地学习,请在源码中查看对应的注释说明!
开源目标
在设计此类库时,希望以最简洁的API来实现转场功能。如果不懂任何转场知识的人,也能轻松使用,那才算达到目标。
因此,如果您没有学习过相关转场方面的知识,请不要担心,这个类库不需要您掌握太多转场的知识,只需要懂基本的OC语法即可轻松接入项目使用。
公共的属性及API都封装在HYBBaseTransition类型中,它遵守了需要实现转场的所有协议并实现之。如果目前类库中所提供的效果不满足您的需求,您可以直接继承于HYBBaseTransition于实现您希望得到的效果。
支持弹簧动画效果
默认转场动画使用的不是弹簧动画效果,如果觉得弹簧动画效果更佳,仅需要设置为YES即可。
/**
* Default is NO, if set to YES, it will be presented and dismissed with
* spring animation.
*/
@property (nonatomic, assign) BOOL animatedWithSpring;
当然,使用到弹簧自然需要设置其参数。不过作者都提供有默认值,都是经过调试过得到的值。如果觉得默认值所得到的效果不够好,请自行调整参数:
/**
* The initial Spring velocity, Only when animatedWithSpring is YES, it will take effect.
* Default is 1.0 / 0.5. If you don't know, just use the default value.
*/
@property (nonatomic, assign) CGFloat initialSpringVelocity;
/**
* The Spring damp, Only when animatedWithSpring is YES, it will take effect.
*
* Default is 0.5. If you don't know, just use the default value.
*/
@property (nonatomic, assign) CGFloat damp;
转场类型动画
目前所支持的动画效果有以下:
- Bubble Effect Transition:泡泡放大、缩小的动画效果,仅支持模态呈现present/dismiss。
- Modal Effect Transition:半屏呈现转场,支持设置缩放系数、呈现高度等,仅支持模态呈现present/dismiss。
- Move Push/Pop Transition:移动切换转场效果,仅支持push/pop模式。
Buble Effect Transition
present时,以泡泡圆形放大;dismiss时,以泡泡圆形缩小至起点。当需要实现此转场效果时,请使用HYBBubbleTransition类型。效果图如下:
如何使用
使用起来非常简单,只需要一个API且只在一处调用即可。比如,现在有HYBModalBubbleViewController,它有一个点击事件,在点击后会回调onPresent函数,然后配置如下即可实现转场:
- (void)onPresent {
HYBBubbleFromBottomController *vc = [[HYBBubbleFromBottomController alloc] init];
vc.modalPresentationStyle = UIModalPresentationCustom;
// Remember to own it strongly
// B