iOS 9应用开发教程之ios9中实现按钮的响应
iOS 9应用开发教程之ios9中实现按钮的响应
IOS9实现按钮的响应
按钮主要是实现用户交互的,即实现响应。按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应;另一种是使用代码添加按钮实现的响应。
1.编辑界面添加按钮实现的响应
使用编辑界面添加按钮可以使用拖动的方式来实现按钮的响应,它也是最简单的一种实现响应的方式。
【示例2-4】以下将实现轻拍按钮,改变主视图背景颜色的功能。具体的操作步骤如下:
(1)创建一个Single View Application模板类型的项目,命名为UIButton-response。
(2)打开Main.storyboard文件,将主视图的尺寸设置为iPhone 4.7-inch。从视图库中拖动按钮控件到主视图中,将Title设置为Tap me,Change View Color。
(3)使用设置编辑器的三个视图方式的图标,将Xcode的界面调整为如图2.5所示的效果。这一过程在前面的章节中讲解过。
 
图2.5 调整Xcode的界面
(4)按住Ctrl键拖动界面中的按钮对象,这时会出现一个蓝色的线条,将这个蓝色的线条拖动到ViewController.swift文件的空白处中,如图2.6所示。
 
图2.6 按住Ctrl键拖动界面中的按钮对象
(5)松开鼠标后,会弹出声明关联插座变量一起进行的对话框(在前面章节中讲解过),如图2.7所示。
 
图2.7 弹出声明关联插座变量一起进行的对话框
(6)将Connection选项设置为Action,表示关联的是一个动作;将Name设置为tapButton,表示关联的动作名为tapButton,如图2.8所示。
 
图2.8 填写对话框
注意:这里的Name可以是任意的。
(7)单击Connect按钮,会在ViewController.swift文件中看到如图2.9所示的代码。
 
图2.9 动作
此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发。
注意:以上这一种方式是动作声明和关联一起进行的,还有一种先声明动作后关联的方式。声明动作可以使用关键字IBAction。该关键字可以告诉故事面板的界面,此方法是一个操作,且可以被某个控件触发。声明动作的语法形式如下:
- @IBAction func 动作名(参数:参数类型){
- }
如图2.10所示,就是在ViewController.swift文件中编写的动作的声明代码。
 
图2.10 声明的动作
注意:在声明动作后,会在代码的前面出现一个空心的小圆圈,它表示此动作还未进行关联。
声明好动作后,就可以进行关联了,首先使用调整窗口中的工具,将Xcode的界面进行调整。将其调整为和图2.5一样的效果。
然后,按住Ctrl键拖动界面中的按钮对象,这时会出现一个蓝色的线条,将这个蓝色的线条和文件ViewController.swift中的动作进行关联,如图2.11所示。
 
图2.11 关联动作
最后,松开鼠标后,按钮对象就与动作成功的关联在一起了,此时动作前面的空心小圆圈就变为了实心的小圆圈,它表示此动作已被关联,效果和图2.9一样。
(8)打开ViewController.swift文件,编写代码,此代码将实现按钮的响应。代码如下:
- import UIKit
- class ViewController: UIViewController {
- var isYellow:Bool=false
- @IBAction func tapButton(sender: AnyObject) {
- //判断主视图的背景是否为黄色
- if(isYellow){
- self.view.backgroundColor=UIColor.whiteColor() //设置主视图的背景颜色
- isYellow=false
- }else{
- self.view.backgroundColor=UIColor.yellowColor()
- isYellow=true
- }
- }
- ……
- }
此时运行程序,首先会看到如图2.12的效果。当轻拍Tap me,Change View Color按钮后,主视图的背景变为黄色,如图2.13所示。当再一次轻拍Tap me,Change View Color按钮,主视图的背景颜色将会变回原来的白色。
 
图2.12 运行效果 图2.13 运行效果
2.使用代码添加按钮实现的响应
使用代码添加的按钮,实现响应需要使用到addTarget(_:action:forControlEvents:)方法,其语法形式如下:
- func addTarget(_ target: AnyObject?,
- action action: Selector,
- forControlEvents controlEvents: UIControlEvents)
其中,参数说明如下:
- target:表示目标对象。它是动作消息的发送方。
- action:表示选择器,用来识别动作消息。它不可以为空。
- controlEvents:表示控件事件。在iOS中有19种控件事件,如表2-4所示。
表2-4 控件事件
 
【示例2-5】以下将实现轻拍按钮,改变主视图背景颜色的功能。代码如下:
- import UIKit
- class ViewController: UIViewController {
- var isCyan:Bool=false
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- //添加按钮对象
- let button=UIButton(frame: CGRectMake(90, 545, 225, 30))
- button.setTitle("Tap me,Change View Color", forState: UIControlState.Normal) //设置按钮的标题
- button.setTitleColor (UIColor.blackColor(), forState: UIControlState.Normal) //设置按钮标题的颜色
- self.view.addSubview(button)
- //实现按钮的响应
- button.addTarget(self, action: "tapbutton", forControlEvents: UIControlEvents.TouchUpInside)
- }
- func tapbutton(){
- //判断主视图的背景颜色是否为青色
- if(isCyan){
- self.view.backgroundColor=UIColor.whiteColor()
- isCyan=false
- }else{
- self.view.backgroundColor=UIColor.cyanColor()
- isCyan=true
- }
- }
- ……
- }
此时运行程序,首先会看到如图2.14的效果。当轻拍Tap me,Change View Color按钮后,主视图的背景变为青色,如图2.15所示。当再一次轻拍Tap me,Change View Color按钮,主视图的背景颜色将会变回原来的白色。
 
图2.14 运行效果 图2.15 运行效果
本文选自:iOS 9应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!
iOS 9应用开发教程之ios9中实现按钮的响应的更多相关文章
- iOS 9应用开发教程之ios9中实现button的响应
		iOS 9应用开发教程之ios9中实现button的响应 IOS9实现button的响应 button主要是实现用户交互的.即实现响应.button实现响应的方式能够依据加入button的不同分为两种 ... 
- iOS 9应用开发教程之ios9的视图
		iOS 9应用开发教程之ios9的视图 了解IOS9的视图 在iPhone或者iPad中,用户看到的和摸到的都是视图.视图是用户界面的重要组成元素.本节将主要讲解ios9视图的添加.删除以及位置和大小 ... 
- iOS 9应用开发教程之iOS 9新特性
		iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS ... 
- iOS 9应用开发教程之使用代码添加按钮美化按钮
		iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ... 
- C#开发Unity游戏教程之Unity中方法的参数
		C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ... 
- Xamarin Anroid开发教程之Anroid开发工具及应用介绍
		Xamarin Anroid开发教程之Anroid开发工具及应用介绍 Xamarin开发Anroid应用介绍 如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热.但是在Andro ... 
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
		AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 Wa ... 
- HealthKit开发教程之HealthKit的复合数据
		HealthKit开发教程之HealthKit的复合数据 复合数据就是复合单位和值构成的数据.所谓复合单位就是由单位进行乘法.除法等得到的单位,如m/s.lb·ft等就是复合单位.本节将针对这些复合数 ... 
- HealthKit开发教程之HealthKit的辅助数据
		HealthKit开发教程之HealthKit的辅助数据 在HealthKit中除了主要数据之外,还有6个辅助数据分别为:体积类型数据.压力类型数据.时间类型数据.温度类型数据.标量类型数据和电导率类 ... 
随机推荐
- mac nginx 安装及PHP配置
			安装nginx 1.安装brew命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mas ... 
- Python文件操作-文件的增删改查
			需求:对文件进行增删改查 由于时间原因,本次代码没有增加任何注释,如有疑问,请联系编辑者:闫龙 其实我也是醉了,看着这些个代码,我脑袋也特么大了,没办法,大神说了,不让用新知识,只可以使用学过的,所以 ... 
- PHP autoload自动加载机制
			原文地址: http://www.jb51.net/article/31399.htm 一直不是很明白__autoload()和spl_autoload_register()到底有什么不同,找到了一个 ... 
- Dream------scala--函数定义、流程控制、异常处理
			Dream------scala--函数定义.流程控制.异常处理 一.函数的定义 1.新建工程 
- local variables referenced from a Lambda expression must be final or effectively final------理解
			前几天使用lamdba时,报了一个这个错,原因是在lamdba体中使用了一个变量,觉得很奇怪! 今天在读这本书的时候,又看到了这个解释,这里有了更深刻的理解,总结一下: 在jdk1.8之前在使用匿名内 ... 
- centos6 yum方式升级内核【转】
			最近没有时间好久没有写文章了,今天由于需要安装docker学习虚拟容器的知识,需要升级OS的内核.目前我这边使用的OS是centos6.5,内核是2.6版本的,如下: cat /etc/issue u ... 
- C#之WinForm基础 新建一个不可编辑的comboBox
			慈心积善融学习,技术愿为有情学.善心速造多好事,前人栽树后乘凉.我今于此写经验,愿见文者得启发. 1.拉控件 2.添加可选数据 3.改变基本样式 4.效果图 C#优秀,值得学习.Winform,WPF ... 
- js中字符串的常用方法
			一.普通方法 1.字符方法 动态方法:1.str.charAt(index); 返回子字符串,index为字符串下标,index取值范围[0,str.length-1] 动态方法:2.str.cha ... 
- mac上安装完成node,就升级好了npm,之后的设置
			1.打开终端输入: npm config list 找到npmrc globalconfig /usr/local/etc/npmrc 2.打开npmrc sudo vim /usr/local/et ... 
- Flask:cookie 和 session (0.1)
			Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 Cookie是什么?有什么用? 某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常 ... 
