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中实现按钮的响应相关推荐

  1. iOS 9应用开发教程之ios9的视图

    iOS 9应用开发教程之ios9的视图 了解IOS9的视图 在iPhone或者iPad中,用户看到的和摸到的都是视图.视图是用户界面的重要组成元素.本节将主要讲解ios9视图的添加.删除以及位置和大小 ...

  2. iOS 9应用开发教程之iOS 9新特性

    iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS ...

  3. EtherCAT运动控制卡开发教程之Qt(中):小线段连续轨迹加工、暂停与继续

    今天,正运动小助手给大家分享一下EtherCAT运动控制卡开发教程之Qt,主要介绍一下如何通过Qt编程实现小线段轨迹连续加工,暂停与继续. ECI2828运动控制卡的硬件介绍 ECI2828系列控制卡 ...

  4. iOS 9应用开发教程之使用代码添加按钮美化按钮

    iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ...

  5. iPhone开发教程之iOS APP体验设计 - 醒醒吧 ))))) - majszt - 和讯博客

    iPhone开发教程之iOS APP体验设计 iPhone开发    |   更新时间:2012-10-15   |   点击:131    |   来源:本站 iOS APP体验设计不像互联网的体验 ...

  6. C#开发Unity游戏教程之Unity中方法的参数

    C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号"( )",有意义吗?看起来最 ...

  7. iOS开发之集成iOS9中的Core Spotlight Framework搜索App的内容

    转载自:  http://www.cnblogs.com/ludashi/p/4867511.html iOS开发之集成iOS9中的Core Spotlight Framework搜索App的内容 S ...

  8. iOS开发教程之OC语言-欧阳坚-专题视频课程

    iOS开发教程之OC语言-34296人已学习 课程介绍         Objective-C是扩充C的面向对象编程语言,iOS开发是用的Objective-C语言,本专题更系统的讲解Objectiv ...

  9. Xamarin Anroid开发教程之Anroid开发工具及应用介绍

    Xamarin Anroid开发教程之Anroid开发工具及应用介绍 Xamarin开发Anroid应用介绍 如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热.但是在Andro ...

最新文章

  1. Ubuntu下CodeBlocks的安装、配置及静态库动态库的简单使用举例
  2. 编写一个函数,实现两个字符串的连接功能
  3. linux线程的实现【转】
  4. python中plot柱状图-Matplotlib中柱状图bar使用
  5. Parallel 并发编程实例
  6. 系列笔记 | 深度学习连载(6):卷积神经网络基础
  7. JAVA 抽象与接口的区别与联系
  8. P2261 [CQOI2007]余数求和 整除分块
  9. tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例
  10. element form自定义校验_SpringBoot分组校验及自定义校验注解
  11. Vue项目npm打包推荐方式
  12. 03-Axure9默认元件库
  13. myeclipse中遇到代码run as后只有run configurations的情况
  14. 辉太郎看前端(for...in和for...of)
  15. 借用该函数验证哥德巴赫猜想:任意一个大的偶数都可以分解成两个素数之和。
  16. recovery 升级界面顶部花屏问题分析
  17. 2023 gitlab添加ssh key
  18. 学区摇号软件设计_多校划片、电脑摇号之后,拼娃、拼钱、拼房的9种对应方案...
  19. ad被锁定的账户_【原创】解决AD账户被莫名其妙的锁定问题
  20. 分享 9 条消除 if...else 的锦囊妙计

热门文章

  1. csdn新版博客初体验
  2. 迭代器、代码块、闭包
  3. 郎咸平:诸葛亮是一名优秀的企业家吗?
  4. websocket采用tomcat方式,IOC类对象无法注入的解决方案
  5. stale element reference: element is not attached to the page document 异常
  6. Android 解决Android的TextView和EditText换行问题
  7. C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)
  8. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
  9. RedHat7.4最小化安装yum源不可用问题解决
  10. int.Parse()和Convert.ToInt32之间的主要区别是什么