iOS 9应用开发教程之ios9中实现button的响应
iOS 9应用开发教程之ios9中实现button的响应
IOS9实现button的响应
button主要是实现用户交互的。即实现响应。button实现响应的方式能够依据加入button的不同分为两种:一种是编辑界面加入button实现的响应;还有一种是使用代码加入button实现的响应。
1.编辑界面加入button实现的响应
使用编辑界面加入button能够使用拖动的方式来实现button的响应,它也是最简单的一种实现响应的方式。
【演示样例2-4】下面将实现轻拍button,改变主视图背景颜色的功能。详细的操作过程例如以下:
(1)创建一个Single View Application模板类型的项目,命名为UIButton-response。
(2)打开Main.storyboard文件,将主视图的尺寸设置为iPhone
4.7-inch。从视图库中拖动button控件到主视图中。将Title设置为Tap me,Change View Color。
(3)使用设置编辑器的三个视图方式的图标,将Xcode的界面调整为如图2.5所看到的的效果。这一过程在前面的章节中解说过。
图2.5 调整Xcode的界面
(4)按住Ctrl键拖动界面中的button对象,这时会出现一个蓝色的线条,将这个蓝色的线条拖动到ViewController.swift文件的空白处中,如图2.6所看到的。
图2.6 按住Ctrl键拖动界面中的button对象
(5)松开鼠标后。会弹出声明关联插座变量一起进行的对话框(在前面章节中解说过)。如图2.7所看到的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图2.7 弹出声明关联插座变量一起进行的对话框
(6)将Connection选项设置为Action。表示关联的是一个动作;将Name设置为tapButton,表示关联的动作名为tapButton,如图2.8所看到的。
图2.8 填写对话框
注意:这里的Name能够是随意的。
(7)单击Connectbutton。会在ViewController.swift文件里看到如图2.9所看到的的代码。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图2.9 动作
此时,当用户轻拍button后。一个叫tapButton()的方法就会被触发。
注意:以上这一种方式是动作声明和关联一起进行的,另一种先声明动作后关联的方式。
声明动作能够使用keywordIBAction。
该keyword能够告诉故事面板的界面,此方法是一个操作,且能够被某个控件触发。声明动作的语法形式例如以下:
@IBAction func 动作名(參数:參数类型){
}
如图2.10所看到的,就是在ViewController.swift文件里编写的动作的声明代码。
图2.10 声明的动作
注意:在声明动作后,会在代码的前面出现一个空心的小圆圈,它表示此动作还未进行关联。
声明好动作后,就能够进行关联了,首先使用调整窗体中的工具,将Xcode的界面进行调整。将其调整为和图2.5一样的效果。
然后,按住Ctrl键拖动界面中的button对象,这时会出现一个蓝色的线条,将这个蓝色的线条和文件ViewController.swift中的动作进行关联,如图2.11所看到的。
图2.11 关联动作
最后,松开鼠标后,button对象就与动作成功的关联在一起了。此时动作前面的空心小圆圈就变为了实心的小圆圈,它表示此动作已被关联,效果和图2.9一样。
(8)打开ViewController.swift文件,编写代码。此代码将实现button的响应。代码例如以下:
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 Colorbutton后,主视图的背景变为黄色,如图2.13所看到的。当再一次轻拍Tap
me,Change View Colorbutton。主视图的背景颜色将会变回原来的白色。
图2.12 执行效果 图2.13 执行效果
2.使用代码加入button实现的响应
使用代码加入的button,实现响应须要使用到addTarget(_:action:forControlEvents:)方法,其语法形式例如以下:
func addTarget(_ target: AnyObject?,
action action: Selector,
forControlEvents controlEvents: UIControlEvents)
当中。參数说明例如以下:
target:表示目标对象。它是动作消息的发送方。
action:表示选择器,用来识别动作消息。它不能够为空。
controlEvents:表示控件事件。在iOS中有19种控件事件,如表2-4所看到的。
表2-4 控件事件
【演示样例2-5】下面将实现轻拍button,改变主视图背景颜色的功能。代码例如以下:
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.
//加入button对象
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的响应
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 Colorbutton后。主视图的背景变为青色,如图2.15所看到的。当再一次轻拍Tap
me,Change View Colorbutton,主视图的背景颜色将会变回原来的白色。
图2.14 执行效果 图2.15 执行效果
本文选自:iOS
9应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!
iOS 9应用开发教程之ios9中实现button的响应的更多相关文章
- iOS 9应用开发教程之ios9中实现按钮的响应
iOS 9应用开发教程之ios9中实现按钮的响应 IOS9实现按钮的响应 按钮主要是实现用户交互的,即实现响应.按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应:另一 ...
- 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 ...
- 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个辅助数据分别为:体积类型数据.压力类型数据.时间类型数据.温度类型数据.标量类型数据和电导率类 ...
- HealthKit开发教程之HealthKit的主要类型数据
HealthKit开发教程之HealthKit的主要类型数据 在HealthKit中,我们将最常用到的数据称之为主要数据.主要数据基本上有三种:长度类型的数据.质量类型的数据.能量类型的数据.本节将主 ...
随机推荐
- JDK源码学习笔记——ArrayList/Vector
一.类定义 public class ArrayList<E> extends AbstractList<E> implements List<E>, Random ...
- Problem C: 矩阵对角线求和
#include<stdio.h> int main() { ][]; scanf("%d",&n); ,sum2=; ;i<n;i++) ;j<n ...
- hibernate使用原生SQL查询
以下是Demo测试Hibernate 原生SQL查询: import java.util.Iterator; import java.util.List; import java.util.Map; ...
- Notepad++ v5.5以上 惯用法教程
注:本文中为注明为自定义快捷键的,均为notepad++的默认快捷键. 0. 关闭标签页 UltraEdit是双击窗口就可以关闭,Notepad++双击不能关闭,右键只能关闭非当前标签页,那怎么办呢 ...
- 定时任务框架-quartz 时间配置
quartz定时任务时间设置: 这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] * 表示所有值. 例如:在分的字段上设置 ...
- 虚函数&纯虚函数&抽象类&虚继承
C++ 虚函数&纯虚函数&抽象类&接口&虚基类 1. 多态 在面向对象语言中,接口的多种不同实现方式即为多态.多态是指,用父类的指针指向子类的实例(对象),然后通过 ...
- python笔记5-python2写csv文件中文乱码问题
前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...
- AS3.0纯代码编写的两款loading效果
AS3.0纯代码编写的两款loading效果 效果一 效果二 代码很简单,实现的原理一样,只不过矩形用到了Matrix类,对注册点进行了调整,效果可用于视频播放器缓冲时的loading效果,下面看代码 ...
- C/C++控制台输出时设置字体及背景颜色
1.改变整个控制台的颜色用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号.各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色 ...
- 【Todo】phantomjs获取动态网页
上面一篇文章,使用了cheerio, http, request等库,来抓取了Lofter上面的美女图片. 但是很多网页是动态渲染的.据了解,Phantom.js 可以获取动态渲染的网页 http:/ ...