iOS系列 基础篇 07 Action动作和输出口
iOS系列 基础篇 07 Action动作和输出口
目录:
1. 前言及案例说明
2. 什么是动作?
3. 什么是输出口?
4. 实战
5. 结尾
1. 前言及案例说明
上篇内容我们学习了标签和按钮,下面呢 我们通过一个具备用户交互功能的工程案例进一步练习这两个控件的使用,以及动作和输出口的控制。
此案例基于上篇内容的界面设计,功能的概念流程如图:
此案例的动作和输出口机制如图:
2. 什么是动作?
动作是为了响应一个控件的事件而定义的方法,类似于.NET中WinForm为控件某一事件添加的动作方法:
private void OnClick(object sender, EventArgs e) { // ... }
不过在iOS中,动作代码的返回值类型为IBAction,示例代码如下:
@IBAction func onClick(sender: AnyObject) { // ... }
该方法的返回类型是IBAction,说明这个方法是一个动作。
与.NET WinForm中动作方法相同:sender是参数,是事件源,表示发出当前事件的控件对象,也可以省略如下:
@IBAction func onClick() { // ... }
3. 什么是输出口?
注意:
“输出口”这玩意儿叫法挺奇葩,可能有的朋友不理解,我就从.NET和Android方面举两个例子吧(别的我也不会。。)。
大家能听懂最好,听不懂的话不必深究这两个例子,直接转眼来看iOS的就行了。
在.NET WinForm的设计界面中,我们拖放一个控件,VS会自动在当前窗体的后置代码(xxx.Designer.cs)中生成响应的控件创建代码。
这样,我们就可以在前置代码文件中使用 this.控件名 来访问后置代码中的控件变量,从而操作窗体上的控件。
在Android中,我们在设计界面上摆放控件之后,如果需要在代码文件中访问该控件,例如:
Button btn = (Button)findViewByid(R.id.btnXXX);
这样就可以在功能代码中,通过对象btn来控制界面上id为btnXXX的控件了。
从这两个例子大家应该就能猜到了,iOS中的“输出口”其实指的就是上面这个控件在功能代码中的对象。
在iOS中,为了使控件的某个事件与定义的动作关联在一起,我们可以通过Interface Builder或者代码建立关联,本篇中我们重点是用第一种方式。
跟动作一样,我们也需要为输出口和控件建立联系,这里也可以通过Interface Builder或者代码来实现。
提示:
Interface Builder设计器就是Interface Builder,在Xcode 4之后被集成到Xcode工具中。
打开Storyboard故事板或xib文件,就会自动打开Interface Builder设计器。
4. 实战
为了实现本篇的目标案例,使按钮能够控制标签,我们需要给标签定义并连接输出口,给按钮实现动作。
点击右上角的“打开辅助编辑器”按钮,打开如图的界面,这样,就可以在设计界面的同时编写功能代码了:
选中标签Label,同时按住control键,将其拖拽到右边的辅助编辑器窗口后松开鼠标,如图所示:
松开鼠标后,会弹出一个对话框,如图,在Connection栏中选择Outlet,设置输出口名称为Label1,Type类型为UILabel:
点击Connect按钮,便会发现右侧的辅助编辑器中自动添加了如下代码:
按照同样的方式,按住control键,将Button按钮拖拽到辅助编辑器窗口,设置如下:
点击Connect按钮,便会发现右侧的辅助编辑器中生动添加了一个动作方法:
我们在动作方法onClick中实现如下代码:
这样,当我们点击Button按钮的时候,就会响应执行onClick动作方法,从而通过Label1对象,修改其绑定的标签的text文本内容。
案例运行效果如下:
5. 小结
虽然应用并不是多么的高大上,但是毕竟是咱们亲手做出来的第一个案例。还是蛮激动的。
“麻雀虽小 五脏俱全”,我们一起加油,让这只麻雀飞的更傲娇、
iOS系列 基础篇 07 Action动作和输出口的更多相关文章
- iOS系列 基础篇 09 开关、滑块和分段控件
iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块 ...
- iOS系列 基础篇 06 标签和按钮 (Label & Button)
iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...
- iOS系列 基础篇 08 文本与键盘
iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
- iOS系列 基础篇 04 探究视图生命周期
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...
- iOS系列 基础篇 05 视图鼻祖 - UIView
iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样, ...
- Java多线程系列--“基础篇”07之 线程休眠
概要 本章,会对Thread中sleep()方法进行介绍.涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较 转载请注明出处:http:// ...
- iOS系列 基础篇 01 构建HelloWorld,剖析并真机测试
iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心 ...
- iOS系列 基础篇 02 StoryBoard 故事板文件
iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyb ...
随机推荐
- 详解this
this 虐我千百遍,看完此文效立见!不得不说,这篇文章的总结很地道很全面,适合收藏之用. 原文:all this 习惯了高级语言的你或许觉得JavaScript中的this跟Java这些面向对象语言 ...
- TODO:一不顺眼就换字体Go之应用篇
TODO:一不顺眼就换字体Go之应用篇 字体,文字的外在形式特征.就是文字的风格,是文字的外衣.好的字体让人看得舒服,让人更有看.写的欲望哦.2016-11-16 GO官方博客发布了同名Go字体,并没 ...
- 设计上如何避免EMC问题
最近经常被问到EMC相关的问题,比如怎么设计才能避免EMC的问题,我想经常关注高速先生的同鞋们有机会肯定也会问到这个问题.首先这是一个系统 性的问题,不是那么好回答,尤其是对于聚焦在高速信号这个领域而 ...
- 提高(Android)开发效率的工具与网站
Dev_Tools 写这篇不是为了"水",是因为有些工具确实不错,但是换个电脑要找到或者在某个时候你想用但是你只知道存在了书签里.然后就只能下载chrome然后登录账户同步书签了. ...
- Jquery网页元素里面的操作以及JSON
如果网页里面有复选框,下拉列表Jquery怎么来操作,主要是怎么选取数据,就是取选中值,第二个是设置哪一项选中 <script src="jquery-1.11.2.min.js&qu ...
- Json概述以及python对json的相关操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- Android动画效果之Tween Animation(补间动画)
前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...
- Android GPS应用开发
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5715879.html GPS定位系统由三部分组成,即由GPS卫星组成的空间部分,若干地面组成的控制部分和普通 ...
- 你可曾见过如此简单粗暴的JavaScript解说 -- if 判断的正确打开方式?
在JavaScript中,对于 if else 的逻辑判断你肯定非常熟悉,本文罗列了几种你不一定知道的简写方式,仅供参考. 例子: 已知小明考了68分,小于60分为不及格,大于60分为及格,问:小明是 ...
- JavaScript 垃圾回收
在公司经常会听到大牛们讨论时说道内存泄露神马的,每每都惊羡不已,最近精力主要用在了Web 开发上,读了一下<JavaScript高级程序设计>(书名很唬人,实际作者写的特别好,由浅入深)了 ...