Titanium Studio中文翻译视频教程:UI Fundamentals
创始人
2024-08-22 11:50:42
0

下面的视频为

下面中文翻译

议程

1、基本titanium的用户界面结构

2、titanium视图层次

3、布局和定位

4、事件处理

对于web开发者来说

1、一个“window”是类似于一个“page”

2、“view”是类似于一个“div”

3、ti.ui命名空间提供了许多专门的控制(按钮,文本字段,采摘,滚动的意见)

4、UI对象在JavaScript中同样的DOM片段组成

查看层次结构和定位

相对母公司定位意见

布局选项:

1,绝对

2,垂直

3,水平(android1.6.0)

百分比高度/宽度(android1.6.0)

事件处理

类似在浏览器中的JavaScript

可以使用几乎所有的JS对象的addEventListener

可以以编程方式触发对象的事件,以及

演示:简单的事件处理程序在默认的项目

创建一个titanium工程,不改动任何代码噢!

在win1.add(label1);前面加这段代码

label1.addEventListener('click',function(){

label1.color='red',

label1.text='我是文本点击事件,点击我会边红色噢!'

});

运行程序后点击“IamWindow1”

就会变成'我是文本点击事件,点击我会边红色噢!'

执行上下文

应用程序的默认类似JS线程一个执行上下文

在浏览器

可以创造更多的通过:

窗口的URL

后台服务

每个人都有uinque符号空间-在一个上下文中另一个不可声明的变量

演示:在默认应用程序的执行上下文

接着刚才那个工程,

我们把以下代码剪切出来!是剪切噢!!

varlabel2=Titanium.UI.createLabel({

color:'#999',

text:'IamWindow2',

font:{fontSize:20,fontFamily:'HelveticaNeue'},

textAlign:'center',

width:'auto'

});

win2.add(label2);

接着在Resources目录下新建一个js文件!名为win2.js

把上面的代码复制到该文件里

并在该段代码上面再加一句代码

varwin2=Ti.UI.currentWindow;

运行程序后你会发现和你把所有代码都写在app.js中一样的效果了!

我们再来添加一段代码

在app.js中的加入加粗的代码

varwin2=Titanium.UI.createWindow({

title:'Tab2',

backgroundColor:'#fff',

url:"win2.js",

myLabel:"这是在app.js设置的"

});

再在win2.js中修改加粗的代码

varlabel2=Titanium.UI.createLabel({

color:'#999',

text:win2.myLabel,

font:{fontSize:20,fontFamily:'HelveticaNeue'},

textAlign:'center',

width:'auto'

});

运行程序就会显示

我们再在win2.js中加入一段代码:

label2.addEventListener('click',function(){

Ti.App.fireEvent('app:labelclicked',{newlabel:"来自第二级上下文"})

});

然后在app.js中的win1.add(label1);上面加入这段代码

Ti.App.addEventListener('app:labelclicked',function(e){

label1.text=e.newlabel;

});

运行程序可以看到

当你点击tab2中的文本的时候,回到tab1看到tab1的文本已经变成了

“来自第二级上下文”

执行上下文

通常情况下,我们建议只使用一个上下文

使用仅当“清白”所需的倍数

如果在使用多个上下文,它往往是必要的,在它们之间共享数据

对于这一点,使用应用程序级事件

...

应用程序级事件

有用的发送JSON序列化的数据,在各方面

有用的应用程序事件发布和订阅

即使在一个上下文

在面向构件的应用程序关键的API

演示:在默认应用程序的跨上下文的消息

撰写您的应用程序的UI

50%或更多的工作是U​​I组件建设

其余大部分是事件移交逻辑

将您的应用程序更易于维护,如果你打破它

成小部件

建议:使用app.js启动您的应用程序

创建/显示/打开您的应用程序从一个单一的UI组件

迭代UI编程

UI编程可以归结为推像素

需要以最快的周期,但还需要从一开始测试的跨平台!

IOS模拟器的开发速度快,设备周期是缓慢的

Android模拟器慢运行

Android设备更快(更好的开发)

实验室的目标

谱写了两个基本“选项卡应用

要求:

显示逃犯名单(虚拟数据)

向下钻取到一个细节窗口

提供一个窗口,添加一个逃犯

演示

以上工程完整代码如下你可以直接复制到你的工程里

app.js

//设置主UIView的背景颜色。(在没有任何窗口或者标签组的时候)

//thissetsthebackgroundcolorofthemasterUIView(whentherearenowindows/tabgroupsonit)

Titanium.UI.setBackgroundColor('#000');

//创建标签组

vartabGroup=Titanium.UI.createTabGroup();

//

//创建基本的UI标签和根窗口

//

varwin1=Titanium.UI.createWindow({

title:'Tab1',

backgroundColor:'#fff'

});

vartab1=Titanium.UI.createTab({

icon:'KS_nav_views.png',

title:'Tab1',

window:win1

});

varlabel1=Titanium.UI.createLabel({

color:'#999',

text:'IamWindow1',

font:{fontSize:20,fontFamily:'HelveticaNeue'},

textAlign:'center',

width:'auto'

});

label1.addEventListener('click',function(){

label1.color='red',

label1.text='我是文本点击事件,点击我会边红色噢!'

});

Ti.App.addEventListener('app:labelclicked',function(e){

label1.text=e.newlabel;

});

win1.add(label1);

//

//createcontrolstabandrootwindow

//

varwin2=Titanium.UI.createWindow({

title:'Tab2',

backgroundColor:'#fff',

url:"win2.js",

myLabel:"这是在app.js设置的"

});

vartab2=Titanium.UI.createTab({

icon:'KS_nav_ui.png',

title:'Tab2',

window:win2

});

//

//addtabs

//

tabGroup.addTab(tab1);

tabGroup.addTab(tab2);

//opentabgroup

tabGroup.open();

win2.js

varwin2=Ti.UI.currentWindow;

varlabel2=Titanium.UI.createLabel({

color:'#999',

text:win2.myLabel,

font:{fontSize:20,fontFamily:'HelveticaNeue'},

textAlign:'center',

width:'auto'

});

win2.add(label2);

label2.addEventListener('click',function(){

Ti.App.fireEvent('app:labelclicked',{newlabel:"来自第二级上下文"})

});

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...