用状态机来设计cell动画

前言

一个cell可能有好几种状态,比方说选中状态与未选中状态,以及失效状态等等状态,我们将这些不同的情形抽象成一个个状态机,用状态机切换逻辑来设计复杂的动画效果,达到简化设计的目的,大大增加程序可维护性.

* 大家需要注意一点,cell因为是可以复用的控件,因为存在复用,所以里面存在较为恶心的复用逻辑,设计动画接口时是需要注意这些小细节的.(亲手写过的人一定会深有体会)

效果

源码

https://github.com/YouXianMing/CellStateAnimation

//
//  CellStateAnimationProtocol.h
//  CellState
//
//  Created by YouXianMing on 15/9/2.
//  Copyright (c) 2015年 ZiPeiYi. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 cell状态
 */
typedef enum : NSUInteger {

    SelectedCellState = 0x20, // 选中状态
    UnselectedCellState,      // 未选中状态

} ECellState;

@protocol CellStateAnimationProtocol <NSObject>

@required
/**
 *  切换到指定的状态
 *
 *  @param state    指定的状态
 *  @param animated 是否需要执行切换的动画
 */
- (void)changeToState:(ECellState)state animated:(BOOL)animated;

@end

分析

使用协议是为了统一接口,统一cell的行为.因为,每个末端的cell都是不可复用的,写出高复用的代码并没有太大价值.

用model记录状态值

如何设置动画

时间: 2024-11-10 10:53:39

用状态机来设计cell动画的相关文章

电脑办公,平面设计,室内设计,室外设计,影视动画,机械设计,工业自控,

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

三、状态机的设计指导原则

---恢复内容开始--- 1.状态机设计关键是什么? 如何才能把一个电路系统抽象为一个或者多个相互配合嵌套的状态机和组合系统模块?是关键. ---恢复内容结束--- 1.状态机设计关键是什么? 如何才能把一个电路系统抽象为一个或者多个相互配合嵌套的状态机和组合系统模块?是关键.

游戏状态机的设计与实现

前言:     游戏编程中对状态机的理解和应用,是体现程序员是否对游戏编程入门的重要指标.本篇文章描述状态机的原理,以及如何实现.并探讨状态机的扩展性和易用性. 什么是状态机:     1.状态机是通过状态变量来描述不同状态     2.状态机变量是互斥的     3.状态机的分割是状态机好坏的标准 状态机的好处:     1.降低整个系统的复杂性     2.容易扩展     3.容易维护 如何实现状态机:     1.通过不同的状态分割逻辑     2.通过面向对象思想来扩展和分割逻辑 状态

FPGA Prototyping By Verilog Examples第五章 状态机FSM设计

上升沿检测电路之Moore型FSM // Listing 5.3module edge_detect_moore ( input wire clk, reset, input wire level, output reg tick ); // symbolic state declaration localparam [1:0] zero = 2'b00, edg = 2'b01, one = 2'b10; // signal declaration reg [1:0] state_reg, s

状态机与状态机的设计

状态机就是状态转移图. 关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成.状态机通过响应一系列事件而“运行”.每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集.函数返回“下一个”(也许是同一个)节点.这些节点中至少有一个必须是终态.当到达终态, 状态机停止. 状态机可归纳为4个要素,即现态.条件.动作.次态.这样的归纳,主要是出于对状态机的内在因果关系的考虑.“现态”和“条件”是因,“动作”和“次态”是果. 我们定义一个jo

Unity3D 学习笔记 - Garen Pick the Balls 捡球小游戏设计 (二) Macanim 动画状态机

注:本游戏开发环境为Unity3D 5.3.4 本星期要求: 模仿 AnimationEvent 编写一个 StateEvents 类 用户可以创建一个指定时间.指定状态触发的事件类 事件可以采用反射机制,调用调用客户的方法:或使用订阅发布方法调用客户的方法. 在你的动画控制程序中使用 StateEvents 类 我采用的是上星期的Garen Pick the Balls小游戏,将Legacy动画部分用Mecanim重写. 要点: 1. 初次状态机开发,尚未实现Run和Attack同时进行(Bl

室外设计 3D室外效果图教程 Sketchup园林景观教程 室外漫游动画实例教程 景观设计手绘教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

简单实用的 Unity 状态机设计

状态机是非常常用的游戏编程模式,状态机的设计也有简单或复杂的区别. 我脑海里的状态机 状态机是什么样的?这是一个非常典型的状态机设计(随手写的): // 状态类 class State { // 保存的状态机引用 StateMachine _machine; // 构造状态,保存状态机引用 public State(StateMachine machine) { _machine = machine; } // 进入状态 public virtual void OnEnter() { } //

基于状态机的简易RISC CPU设计

目录 一.什么是CPU? 二.RISC CPU结构 1.时钟发生器 2.指令寄存器 3.累加器 4.RISC CPU算术逻辑运算单元 5.数据控制器 6.状态控制器 7.程序计数器 8.地址多路器 9.外围模块 10.地址译码器 a.RAM b.ROM 三.RISC CPU中各部件的相互连接关系 四.RISC CPU和它的外围电路 五.RISC CPU的寻址方式和指令系统 六.RISC CPU的操作和时序 正文 一.什么是CPU? CPU 即中央处理单元的英文缩写,它是计算机的核心部件.计算机进