热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

应用开发_iOS9应用开发教程之ios9中实现button的响应

篇首语:本文由编程笔记#小编为大家整理,主要介绍了iOS9应用开发教程之ios9中实现button的响应相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了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所看到的。


技术分享


2.7  弹出声明关联插座变量一起进行的对话框


6)将Connection选项设置为Action。表示关联的是一个动作;将Name设置为tapButton,表示关联的动作名为tapButton,如图2.8所看到的。


技术分享


2.8  填写对话框


注意:这里的Name能够是随意的。


7)单击Connectbutton。会在ViewController.swift文件里看到如图2.9所看到的的代码。


技术分享


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 Color
button。主视图的背景颜色将会变回原来的白色。


技术分享


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 Color
button,主视图的背景颜色将会变回原来的白色。


技术分享


2.14  执行效果                                 2.15  执行效果


本文选自:iOS
9应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!


?














推荐阅读
  • java datarow_DataSet  DataTable DataRow 深入浅出
    本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • MVC模式下的电子取证技术初探
    本文探讨了在MVC(模型-视图-控制器)架构下进行电子取证的技术方法,通过实际案例分析,提供了详细的取证步骤和技术要点。 ... [详细]
  • Unity技巧:实现背景音乐的开关功能
    本文详细介绍了如何在Unity中通过脚本控制背景音乐的开启与关闭,适合初学者参考。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • 在AngularJS中,有时需要在表单内包含某些控件,但又不希望这些控件导致表单变为脏状态。例如,当用户对表单进行修改后,表单的$dirty属性将变为true,触发保存对话框。然而,对于一些导航或辅助功能控件,我们可能并不希望它们触发这种行为。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 本文旨在探讨Swift中的Closure与Objective-C中的Block之间的区别与联系,通过定义、使用方式以及外部变量捕获等方面的比较,帮助开发者更好地理解这两种机制的特点及应用场景。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • IntelliJ IDEA配置微服务启动显示
    通过编辑IntelliJ IDEA的workspace.xml文件,可以实现微服务启动对象的显示。具体步骤包括定位并修改workspace.xml中的RunDashboard部分。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
author-avatar
季孙意如
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有