当前位置:  编程技术>移动开发
本页文章导读:
    ▪学习札记10—UIControl对象详解        学习笔记10—UIControl对象详解上篇讲到了UITouch和UIEvent事件,简单回顾一下,UIEvent是一系列UITouch的集合,在IOS中负责响应触摸事件。另外还提到了响应者链的概念,在IOS中,所有事件有一个.........
    ▪ 跨平台搬动开发实战(三)-HTML5开发环境搭建        跨平台移动开发实战(三)------HTML5开发环境搭建跨平台移动开发实际上就是基于HTML5开发软件界面和主要的业务逻辑,因此一套完善的基于移动平台的HTML5开发环境是非常有必要的。这里我.........
    ▪ Sencha Touch 2中怎么弹出一个网页并关掉此网页       Sencha Touch 2中如何弹出一个网页并关掉此网页由于本地的app一般不允许打开一个网页,所以我们可以采用popup的方式,通过浮层中嵌套网页的方式来打开网页。 1.首先定义一个按钮并定义它的.........

[1]学习札记10—UIControl对象详解
    来源: 互联网  发布时间: 2014-02-18
学习笔记10—UIControl对象详解

上篇讲到了UITouch和UIEvent事件,简单回顾一下,UIEvent是一系列UITouch的集合,在IOS中负责响应触摸事件。另外还提到了响应者链的概念,在IOS中,所有事件有一个最先响应者,事件可以沿着响应者链向下传递。


接下来是UIControl对象

UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButton、UISwitch、UITextField等控件的父类,它本身也包含了一些属性和方法,但是不能直接使用UIControl类,它只是定义了子类都需要使用的方法。


UIControl对象采用了一种新的事件处理机制,将前一节直接处理的触摸事件转换成简单操作,这样可以无需关心用户访问控件的具体方式。触摸事件到达UIControl对象(由响应者链派遣)后,在UIResponder的方法中(如touchBegan:withEvent)中,UIControl将标准的触摸事件转换为特殊的控件事件,简单的理解就是,UIControl把复杂的触摸事件封装成了简单的易于使用的控件事件。例如通过UIControl对象处理后,按下按钮的事件就被封装成一个控件事件,而不用去判断触摸屏幕的整个操作过程。

例如按钮的单击事件:UIControlEventTouchUpInside


我们所需要知道的是UIControl首先将触摸事件转换为控件事件,再转换为带接收放的操作。我们只要编写第二次转换的代码,就是将控件事件转换为有目标的操作。


使用addTarget:action:forControlEvents

这是UIControl的一个方法,为指定的控件对象添加事件,例如:

[controlObj addTarget:recepientObj action @selector(method) froControlEvents : UIControlEvents];

controlObj是要响应事件的控件对象;

参数receientObj是要把消息发送到哪里,一般是self,通常指实例化控件对象的控制器;

action后面是一个选择器,表示该事件需要响应的方法,事件做什么其实就写在这个方法里面;

最后一个是事件类型,表示响应什么样的事件。


使用的两种方式:

1.通过代码

在代码中新建一个按钮,然后为按钮对象添加addTarget:action:forControlEvents方法,然后编写响应方法即可。


2.通过可视化实现

在IB中按住control键,点击鼠标从按钮拖动到对应的.h文件中,就建立了一个IBAction方法,在此方法中编写事件逻辑便可完成事件响应,用这种方法相比第一种来说更直观,开发效率也更高。


后续还会使用IOS中其他控件,但大致原理都是一样的,后面会结合新的知识来使用这些控件,包括对控件的自定义样式等。



    
[2] 跨平台搬动开发实战(三)-HTML5开发环境搭建
    来源: 互联网  发布时间: 2014-02-18
跨平台移动开发实战(三)------HTML5开发环境搭建

跨平台移动开发实际上就是基于HTML5开发软件界面和主要的业务逻辑,因此一套完善的基于移动平台的HTML5开发环境是非常有必要的。这里我主要的关注点是以下四点:

  • Javascript和Jquery mobile的编辑器
  • HTML5的各个元素的Inspector
  • Javascript远程断点debug
  • 移动平台Javascript开发模式

1)Javascript和Jquery mobile的编辑器

谈到Javascript的编辑器,市面上有很多,大家都有自己心仪的选择,我这里只是推荐三个我比较喜欢的:

  • aptana studio. Eclipse插件更新地址:http://download.aptana.com/studio3/plugin/install
  • Dreamweaver CS6. 官方地址:http://success.adobe.com/en/na/sem/products/dreamweaver.html
  • appMobi. 官方地址:http://www.appmobi.com/
  • aptana studio的优点在于比较轻量级,与Eclipse集成,并且代码自动完成和JS语法纠错做得非常好,整个风格类似于VI,比较极客一点:

    Dreamweaver CS6算是最为强悍的HTML5的开发环境,并且是我所知道的唯一支持Jquery mobile所见即所得的开发工具(官方提供的在线编辑器除外),并且Javascript, CSS和HTML开发起来非常顺手,最大的缺陷就是要收费:

    appMobi非常适合在不同分辨率下的调试,非常cool的界面也非常做演示之用:

    代码编辑:

    模拟器演示:

    这些工具的具体安装和使用我就不多说了,直来直去,自己体验一下就知道了

    2)HTML5的各个元素的Inspector

    如果放在桌面系统上浏览器,这样的工具是很多的,如firefox上的firebug,chrome上的开发者工具,IE上http watch和IE自带调试工具,但如果放在移动平台上,特别是基于phonegap这样内置的webview来开发,这样的工具就不是很普遍了。这里推荐一个phonegap官方所提到过的工具:weinre

    weinre通过架一个server,把调试器和device连接起来,原理就多说,2.0之后就没看到Java的版本,因此只能通过NPM来安装,顺便提一下NPM是Nodejs的包管理工具,类似于Maven对于Java一样。安装Nodejs后就安装好了NPM。之后安装weinre非常简单:

    npm install weinre -g

    如果在windows平台上没加任何配置,weinre会安装在 C:\Users\***\AppData\Roaming\npm\node_modules\weinre\,然后启动server:

    node path-to-weinre-node/weinre --boundHost -all- --httpPort 8082
    这里用-all-是为了在0.0.0.0上打开端口8082,避免非本地无法远程请求这个端口,然后在要调试的页面里加上weinre的代理:

    <script src="http://computer-ip:8082/target/target-script-min.js#anonymous"></script>
    这里computer-ip用能让device连上主机的地址,当然有关device与主机网络连接的问题我会在后面的文章中具体来谈。之后就是在device上启动应用程序,这里就拿android做例子,IOS是一样的。device启动后,打开chrome浏览器(基于webkit内核的都行),访问:http://localhost:8082/client/#anonymous,如果之前都问题的话,就能在target下看到device的连接,单击后,会发现这个连接变绿,这说明已能调试远程的device,之后就能像使用firebug或chrome开发者工具那样来使用了,不过它缺了很重要的功能就是远程JS断点调试,不过我会在后面来介绍另外一个工具来实现,下面看看调试上的截图:

    3)Javascript远程断点debug

    这里推荐使用Aardwolf(https://github.com/lexandera/Aardwolf/)来实现这个功能,它的原理和weinre类似,也是通过架server来远程debug device。下载Aardwolf后,启动server:

    node Aardwolf_install_folder/app.js -h -d web_app_path
    
    web_app_path里就是你需要调试的web应用,里面包含需要调试的JS。

    然后类似于weinre,需要在html里添加Aardwolf代理:

    • <script src="http://computer-ip:8500/aardwolf.js"></script>
    • <script src="http://computer-ip:8500/js/main.js"></script>

    其中aardwolf.js是系统js,js/main.js是需要调试的js,这个main.js经过aardwolf翻译后,具备了被调试的能力。之后,启动应用,就能在localhost:8000上进行debug:

    4)移动平台Javascript开发模式

    虽然上面的种种方法都能在device上进行调试HTML5,但全程开发都这么搞估计大家也快疯掉,所以我还是比较推荐现在桌面的浏览器上开发完主要的界面和逻辑,主要phonegap与device结合点外,其他基本上和桌面浏览器是一致的。所以我会先开发一个Chrome APP版本,先重点搞定这个版本后然后再移植到其他平台上,这样在其他平台上就只用调试和device相关的点。关于chrome app的相关内容我会在后面单独来谈。




        
    [3] Sencha Touch 2中怎么弹出一个网页并关掉此网页
        来源: 互联网  发布时间: 2014-02-18
    Sencha Touch 2中如何弹出一个网页并关掉此网页

    由于本地的app一般不允许打开一个网页,所以我们可以采用popup的方式,通过浮层中嵌套网页的方式来打开网页。

    1.首先定义一个按钮并定义它的事件

    text:'尝试',
    						handler:function(){
    							Ext.Viewport.add({
    								xtype: 'bigpanel'
    							});
    							
    							
    							 Ext.getCmp('bigClose').setHandler(function(){
    									Ext.getCmp('bigPanel').destroy();
    									//myApp.getDecriptionOverlay().destroy();
    
    
    
    								});
    
    							
    							
    							
    						}


    2.定义弹出的panel(浮层)定义文件名为BigPanel

    /**
     * Created by JetBrains WebStorm.
     * User: Administrator
     * Date: 12-5-30
     * Time: 下午9:01
     * To change this template use File | Settings | File Templates.
     */
    Ext.define("Path.view.BigPanel", {
        extend : 'Ext.Panel',
        xtype: 'bigpanel',
        requires:['Ext.field.DatePicker'],
        config: {
            id:'bigPanel',
            modal: true,
            centered: true,
            width: Global.width,
            height:Global.height,
            styleHtmlContent: true,
            scrollable: 'vertical',
            cls: 'htmlcontent',
    		html:'<iframe src="http://www.cfxixi.com"  height="100%" width="100%"></iframe>',
            items:[{
                xtype:'toolbar',
                id:'bigTb',
                docked: 'bottom',
                items:[{
                    xtype:'spacer'
                },
                {
                    text:'确认',
                    ui:'action',
                    id:'bigConfirm'
                },
                {
                    text:'关闭',
                    ui:'action',
                    id:'bigClose'
                }]
            }]
    
    
    
    
        }
    });
    


    3.由此便可打开一个嵌套有网站的网页了,当然关掉的时候lz用到了destroy的方法

    更多疑问可到qq群224711028大家交流




        
    最新技术文章:
    ▪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提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


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

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

    浙ICP备11055608号-3