动画中的模块化设计

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.动画中的模块化设计


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值