Cocos2D实现上下滚动式状态窗口

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)



有时候要显示的内容太多,我们无法在iOS设备的小屏幕上显示出来,这时候我们可以将内容划分为多个子窗口,依次显示对应的窗口.

在SpritBuilder中新建一个类型为Node的CCB文件,调整样式如下:

我这里划分了2个子窗口,用中间的箭头分割.

注意下面的子窗口中的内容是动态获取的,所以这里留空,但是要保留一个引用的名称.

回到Xcode中,进入对应的类,添加如下方法:

-(void)expandView{
    CCLOG(@"%@ pressed!!!",NSStringFromSelector(_cmd));
    CCActionMoveTo *move;
    CCActionRotateTo *rotate;
    CCAction *fade;
    if (!_isExpanded) {
        _isExpanded = YES;
        //_upperNode.visible = NO;
        fade = [CCActionFadeOut actionWithDuration:1.f];
        move = [CCActionMoveTo actionWithDuration:1 position:ccp(0, 0)];
        rotate = [CCActionRotateTo actionWithDuration:1 angle:180];
    }else{
        _isExpanded = NO;
        //_upperNode.visible = YES;
        fade = [CCActionFadeIn actionWithDuration:1.f];
        move = [CCActionMoveTo actionWithDuration:1 position:ccp(0, -1)];
        rotate = [CCActionRotateTo actionWithDuration:1 angle:0];
    }
    [self runAction:move];
    [_expandArrow runAction:rotate];
    [_upperNode runAction:fade];
}

该方法的主要功能是在点击按钮时下滑或上滑子窗口,应用一些动画效果,同时改变按钮箭头的方向.

以下是实际效果:

时间: 2024-08-01 18:14:51

Cocos2D实现上下滚动式状态窗口的相关文章

Cocos2D中的Framerate状态

对于额外绘制调试物理引擎的支持,Cocos2D同样可以绘制概述计数器,尤其是帧速率(framerate)显示. 为了启用这些概述计数器标签,你只需添加如下一行代码,比如说在AppDelegate.m里: [CCDirector sharedDirector].displayStats = YES; Cocos2D将在左下角会绘制3个标签,从上至下依次为: 绘制调用(draw call)计数:绘制调用一般发生在OpenGL每次需要绘制一个不同纹理的时候,但是可能也有其他原因导致绘制调用.每个绘制调

windows启动失败 未能成功启动状态0xc00000e9怎么办?

  这个经验是解决windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤. 1.这个经验是解决windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤.错误代码0xc00000e9问题如下图 2.当错误下面提示有一个文件路径时,不是硬件的问题,是引导文件被损坏了,当然错误下面要不是文件的路径,那就是其它错误了,本经验可能就必有余而力不足了.在这要进入pe如下图,那个版本的pe都是可以的以2003版为例. 3.进入pe之后桌面上会有一个windows修复工具,你此

Windows窗口消息实例详解_C 语言

本文实例总结了Windows窗口消息.分享给大家供大家参考.具体如下: 复制代码 代码如下: //////////////////////////////////////////////////////////////////////////    #include "AFXPRIV.H"//消息值的定义来源    #include "Dde.h"//DDE消息值的定义来源    #include "CPL.H"//控制面板消息值的定义来源   

win8.1无线网络受限原因及解决方法大全

  ps:此方法win7无线网络受限同样适用哦. win8.1无线网络受限原因及解决方法大全: 思路一:检查网络及路由器信号是否畅通 首先,确认网络是否欠费,无线路由器线路连接是否良好,无线网络信号发射是否正常. 如果确定是路由器的问题,不妨重启路由器或者恢复路由器的设置为出厂状态. 同时,如果可以,请更新无线路由器固件和计算机的无线网络适配器驱动程序为最新版本. 思路二:检查网络服务状态 按Winkey+R启动运行,键入"services.msc"启动服务管理窗口.确认DNS Cli

win7/8无线网络连接受限制怎么办?

  一.检查网络及路由器信号是否畅通 首先,确认网络是否欠费,无线路由器线路连接是否良好,无线网络信号发射是否正常. 如果确定是路由器的问题,不妨重启路由器或者恢复路由器的设置为出厂状态. 同时,如果可以,请更新无线路由器固件和计算机的无线网络适配器驱动程序为最新版本. 二.检查网络服务状态 按Winkey+R启动运行,键入"services.msc"启动服务管理窗口.确认DNS Client.DHCP Client以及IP Helper等网络服务状态(默认为开启),然后重新启动计算机

Win7无线网络连接受限的解决方法

  日常计算机使用中,我们会经常遇到网络故障,而网络故障的特点是原因复杂而现象一致,所以解决起来很棘手.本文总结一些Win7/Win8.1下无线网络受限故障的解决思路,供大家一试: 思路一:检查网络及路由器信号是否畅通 首先,确认网络是否欠费,无线路由器线路连接是否良好,无线网络信号发射是否正常. 如果确定是路由器的问题,不妨重启路由器或者恢复路由器的设置为出厂状态. 同时,如果可以,请更新无线路由器固件和计算机的无线网络适配器驱动程序为最新版本. 思路二:检查网络服务状态 按Winkey+R启

Win7/Win8.1的无线网络连接受限的解决方法

  日常计算机使用中,我们会经常遇到网络故障,而网络故障的特点是原因复杂而现象一致,所以解决起来很棘手.本文总结一些Win7/Win8.1下无线网络受限故障的解决思路,供大家一试: 思路一:检查网络及路由器信号是否畅通 首先,确认网络是否欠费,无线路由器线路连接是否良好,无线网络信号发射是否正常. 如果确定是路由器的问题,不妨重启路由器或者恢复路由器的设置为出厂状态. 同时,如果可以,请更新无线路由器固件和计算机的无线网络适配器驱动程序为最新版本. 思路二:检查网络服务状态 按Winkey+R启

JavaScript[对象.属性]集锦之一

javascript|对象 SCRIPT 标记 用于包含javascript代码. 语法 属性 LANGUAGE 定义脚本语言 SRC 定义一个URL用以指定以.JS结尾的文件 windows对象 每个HTML文档的顶层对象. 属性 frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放. feames.length 子桢个数. self 当前窗口. parent 父窗口(当前窗口是中一个子窗口). top 顶层窗口(是所有可见窗口的父窗口). status 浏览器状态窗口上的消息.

&#106avascript[对象.属性]集锦之一

对象 SCRIPT 标记 用于包含JavaScript代码. 语法 属性 LANGUAGE 定义脚本语言 SRC 定义一个URL用以指定以.JS结尾的文件 windows对象 每个HTML文档的顶层对象. 属性 frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放. feames.length 子桢个数. self 当前窗口. parent 父窗口(当前窗口是中一个子窗口). top 顶层窗口(是所有可见窗口的父窗口). status 浏览器状态窗口上的消息. defaultStat