动画中的模块化设计
来源:互联网 发布:新东方留学怎么样知乎 编辑:程序博客网 时间:2024/05/29 17:08
1.动画效果实现难度的判断
2.将看到的动画效果拆分成小模块
3.将写好的小模块组合成你所需要的动画效果
一,新建一个BaseAnimationView主控类
@interface BaseAnimationView :UIView
- (void)show;
- (void)hide;
- (void)buildView;
@end
#import "BaseAnimationView.h"
#import "CircleView.h"
#import "LineView.h"
@interface BaseAnimationView ()
@property (nonatomic,strong) CircleView *circleView;
@property (nonatomic,strong) RectView *lineView;
@end
@implementation BaseAnimationView
- (void)show {
[self.circleViewshow];
[self.lineViewshow];
}
- (void)hide {
[self.circleViewhide];
[self.lineViewhide];
}
- (void)buildView {
self.circleView = [[CircleViewalloc] initWithFrame:CGRectZero];
[selfaddSubview:self.circleView];
self.lineView = [[RectViewalloc] initWithFrame:CGRectZero];
[selfaddSubview:self.lineView];
}
@end
二、新建CircleView,LineView类,方法名都统一,此两类被BaseAnimationView控制
@interface CircleView :UIView
- (void)show;
- (void)hide;
- (void)buildView;
@end
#import "CircleView.h"
@implementation CircleView
- (void)show {}
- (void)hide {}
- (void)buildView {}
@end
@interface LineView : UIView
- (void)show;
- (void)hide;
- (void)buildView;
@end
#import "LineView.h"
@implementation LineView
- (void)show {}
- (void)hide {}
- (void)buildView {}
@end
三、使用复杂的动画被写进了BaseAnimationView当中,没有暴露不必要的细节,便于维持
- (void)viewDidLoad {
[superviewDidLoad];
// 复杂的动画被写进了BaseAnimationView当中,没有暴露不必要的细节
BaseAnimationView *baseView = [[BaseAnimationViewalloc] initWithFrame:CGRectZero];
[self.viewaddSubview:baseView];
[baseViewshow];
}
四、总结
1.制定统一的动画接口
2.动画中的高内聚低耦合原理
3.设计动画函数的注意事项
4.用里氏代换原则来处理动画类的继承问题
5.动画中的模块化设计
- 动画中的模块化设计
- 模块化设计
- 模块化设计
- 模块化设计
- 模块化设计
- 模块化的核心思想──页面重构中的模块化设计(四)
- 模块化设计与积木
- 前端模块化设计思路
- 软件模块化设计
- 软件模块化设计
- 【Nginx】模块化设计
- JS模块化设计初探
- 模块化设计的Linux
- 模块化设计实例
- iOS程序模块化设计
- thinkphp—模块化设计
- OSGI 模块化 POM设计
- 2-模块化设计
- 迷宫游戏(二维数组的应用)
- Hibernate Dialect
- 日经春秋 20150712
- Android Studio安装
- UVA 11892 ENimEN (简单博弈)
- 动画中的模块化设计
- 日经社説 20150712 いまこそ暴力団への資金断て
- POJ 3086 Triangular Sums(水~)
- 日经社説 20150712 中ロに問われる国際秩序づくりの自覚
- javascript设置input编辑框光标的位置
- 通知模式实现两个textField传值及模态视图——iOS开发
- 字符串的应用
- 社説 20150712 岩手中2生自殺 なぜSOSは届かなかったか
- 项目管理工具Maven