当前位置:  编程技术>移动开发
本页文章导读:
    ▪多点抚摸        多点触摸@implementation TouchLayer - (id) init { if ((self = [super init])) { touchSpriteA_ =[CCSprite spriteWithFile:@"Icon.png"]; [self addChild:touchSpriteA_]; touchSpriteB_ =[CCSprite spriteWithFile:@"Icon.png"]; [self addChild:touch.........
    ▪ 对DirectUI 的初始理解        对DirectUI 的初步理解    这个基本的封装控件类,基于WinCE的,所以他的入口自然是int APIENTRY WinMain,首先是Creat,创建窗口,封装的类包括     1、SubClass   子类化窗口     2、ShowModal   .........
    ▪ 定制的UIAlertView在展示时出现抖动的现象       定制的UIAlertView在显示时出现抖动的现象最近有一个需求,要求iPhone定制UIAlertView的窗口,没用多长时定制的UIAlertView出炉了 但是有一个问题:        定制的UIAlertView显示时,在iPhone设备.........

[1]多点抚摸
    来源: 互联网  发布时间: 2014-02-18
多点触摸

@implementation TouchLayer


- (id) init

{


if ((self = [super init])) {

touchSpriteA_ =[CCSprite spriteWithFile:@"Icon.png"];

[self addChild:touchSpriteA_];

touchSpriteB_ =[CCSprite spriteWithFile:@"Icon.png"];

[self addChild:touchSpriteB_];

}

return self;

}


- (void) dealloc

{


[super dealloc];

}


- (void) onEnter

{

[super onEnter];

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];

}


- (void) onExit

{

[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];

[super onExit];

}


- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event

{


return YES;

}


- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event;

{


CGPoint begen = [touch locationInView: [touch view]];

    NSSet *allTouches = [event allTouches];//获得所有触摸点  

    int count = [[allTouches allObjects] count];//当前触摸点数量,单点触摸为1. 

    if (count == 1) {//单点触摸  

        UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];//获得第一个触摸点  

        switch ([touch1 tapCount]) {//判断是单击还是双击  

            case 1:  

                if (begen.y<550) {

                

                }

                NSLog(@"单击\n");  

                break;  

            case 2:  

#pragma mark 这里可以执行动画

                NSLog(@"双击\n");  

                break;  

        }  

    }else if (count == 2) {//多点触摸  

        

        CGPoint touch0_point = [[[allTouches allObjects] objectAtIndex:0] locationInView: [touch view]];

        CGPoint touch1_point = [[[allTouches allObjects] objectAtIndex:1] locationInView: [touch view]];

        touchSpriteB_.position = touch0_point;

touchSpriteA_.position = touch1_point;

        NSLog(@"两点触摸\n%f---%f",touch0_point.x,touch1_point.x);

 

        

    } 

}


    
[2] 对DirectUI 的初始理解
    来源: 互联网  发布时间: 2014-02-18
对DirectUI 的初步理解

    这个基本的封装控件类,基于WinCE的,所以他的入口自然是int APIENTRY WinMain,首先是Creat,创建窗口,封装的类包括

    1、SubClass   子类化窗口

    2、ShowModal   窗口模态化

    3、CPaintManagerUI   绘制管理者  这个类中封装了很多UI的函数,比如GetClientSize,获取工作区域的宽和高,MessageHandler写了很多消息响应函数,对鼠标的操作, 等于自己重写了几乎所有的消息响应,另外很对地方用到了CControlUI

    4、CControlUI   控件类

  等等控件在原来MFC的基础上封装了,使用起来更加方便。

  如何使用呢,我们需要建一个WinCE工程,比如建立一个像360一样的页面,我们写好XML文件后,接下来就是如何去解析了,我们需要通过Create函数建立窗口,而在这个函数中我们要将写好的XML文件解析出来

tString tstrSkin = CPaintManagerUI::GetSkinPath() + _T("skin.xml");
  CControlUI* pRoot = builder.Create(tstrSkin.c_str(), (UINT)0,  &cb, &m_pm);  
  ASSERT(pRoot && _T("Failed to parse XML"));

这样就可以了,然后通过消息函数响应WM_CREATE、WM_CLOSE、WM_DESTROY、WM_NCPAINT、WM_GETMINMAXINFO(重载最小化函数)、WM_SIZE(窗口变化函数)、WM_SYSCOMMAND、WM_NCACTIVATE、WM_NCCALCSIZE、WM_NCHITTEST,这些函数可以帮助我们解析XML上的控件,实现消息的对应。

   而在底层封装的一些消息,我们通过 msg.sType == _T("click")的方式与之匹配,以下是封装的消息

  1、“click” 属于CButtonUI类,Activate()函数,实现判断按钮是否活跃,如活跃则发送通知

  2、“selectchanged” 属于COptionUI类,Activate()函数,若复选框处于选中状态,激活并发送通知

  3、“link” 属于CTextUI,Event()函数,若鼠标弹起,发送link通知

  4、“valuechanged” 属于CSliderUI,Event()函数,点击滑块弹起,发送通知

  5、“textchanged”属于CEditUI,SetText()函数,设置文本时发送通知

  6、“itemselect”属于CComboUI(组合控件),SelectItem()函数中响应WM_KEYDOWM,发送通知

  7、“itemselect”又属于ClistUI(列表控件),SelectItem()函数中,发送通知

  8、“Headclick”属于CListUI(列表控件),Event()函数中,鼠标按在列表头的位置,发送通知

  9、“itemactivate”属于CListElementUI(列表元素),Activate()函数中,双击时发送通知

  10、“itemclick”属于CListLabelElementUI,Event()函数,单击某一片区域,发送通知

  11、“windowinit”属于CPaintManageUI,WM_PAINT消息中,第一次绘制时发送通知

  12、“setfocus”和“Killfocus”,属于CPaintManageUI,获取焦点和失去焦点


    
[3] 定制的UIAlertView在展示时出现抖动的现象
    来源: 互联网  发布时间: 2014-02-18
定制的UIAlertView在显示时出现抖动的现象

最近有一个需求,要求iPhone定制UIAlertView的窗口,没用多长时定制的UIAlertView出炉了

但是有一个问题:

       定制的UIAlertView显示时,在iPhone设备上的效果是整个窗口上下抖动两下才停止,好奇怪的问题???

我们把这个定制的UIAlertView单独做了一个效果,结果发现没出现抖动,可见是其它东西影响了它的显示。

在定制的UIAlertView显示之前,会有一个UIActionSheet弹出来供我们选择,而UIActionSheet的动画效果影响了UIAlertView的显示。

分析原因是UIActionSheet消失的动画时间还没执行完成,UIAlertView就弹出来的原因。

解决办法:

       定制的UIAlertView延时0.3s显示,问题就这样解决了。




    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android录音应用实例教程 iis7站长之家
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3