博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动画中的模块化设计
阅读量:5876 次
发布时间:2019-06-19

本文共 1531 字,大约阅读时间需要 5 分钟。

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

转载地址:http://rxzix.baihongyu.com/

你可能感兴趣的文章
微软同步发行Windows 10和Windows 10 Mobile系统更新
查看>>
Maven 传递依赖冲突解决(了解)
查看>>
Zeppelin的入门使用系列之使用Zeppelin运行shell命令(二)
查看>>
[Spark][Python]Spark Join 小例子
查看>>
form表单下的button按钮会自动提交表单的问题
查看>>
大战设计模式【11】—— 模板方法模式
查看>>
springBoot介绍
查看>>
Intellij IDEA 快捷键整理
查看>>
Redis 通用操作2
查看>>
11. Spring Boot JPA 连接数据库
查看>>
洛谷P2925 [USACO08DEC]干草出售Hay For Sale
查看>>
MapReduce工作原理流程简介
查看>>
那些年追过的......写过的技术博客
查看>>
小米手机解锁bootload教程及常见问题
查看>>
Python内置函数property()使用实例
查看>>
Spring MVC NoClassDefFoundError 问题的解决方法。
查看>>
CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
C# 解决窗体闪烁
查看>>
CSS魔法堂:Transition就这么好玩
查看>>