`
shuai1234
  • 浏览: 933797 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Iphone开发(三)按钮的响应控制

 
阅读更多

holydancer原创,如需转载,请在显要位置注明:转自holydancer的CSDN博客,原文地址:

http://blog.csdn.net/holydancer/article/details/7393866

 

上次我们介绍了helloWorld的实现原理,其中大部分代码都是项目模板自动生成的,今天我们来在研究一下如何在Iphone应用中添加按钮和按钮的监听,首先新建一个项目:

然后在自动生成的文件中打开xib文件并进行如下操作,拖一个label,两个button,并将内容分别发为如图所示:

现在我们就要用到一个新概念了,那就是输出口和行为,输出口的关键字是IBOutlet,这只是一个单纯的关键字,但是在xcode开发中,使用该关键字声明的变量可以和xib文件中画出来的控件相联系,有点儿类似于android开发中的findViewById,行为的关键字是:IBAction.该关键字用来修饰方法,使用该关键字修饰的方法可以和xib文件中的控件的各种事件绑定,使用IBAction修饰的自定义方法会有一个参数sender,可以用来传递xib中控件的一些属性,比如标题或者什么的。好了,看代码,我们先在viewController.h中用IBOutlet声明一下label和两个button,以及用IBAction修饰的响应方法。

viewController.h:

左边的小圆圈表示可以和xib文件中的控件相连,但是是空心的,说明还未连接。下面我们在viewController.m中将其实现:

viewCotroller.m:

 

[plain] view plaincopy
 
  1. #import "ViewController.h"  
  2.   
  3. @interface ViewController ()  
  4.   
  5. @end  
  6.   
  7. @implementation ViewController  
  8. @synthesize label;  
  9. @synthesize bu1;  
  10. @synthesize bu2;  
  11. -(IBAction)click:(id)sender  
  12. {  
  13.     label.text=[sender titleForState:UIControlStateNormal];//1  
  14. }  
  15. - (void)viewDidLoad  
  16. {  
  17.     [super viewDidLoad];  
  18.     // Do any additional setup after loading the view, typically from a nib.  
  19. }  
  20.   
  21. - (void)viewDidUnload  
  22. {  
  23.     [super viewDidUnload];  
  24.     // Release any retained subviews of the main view.  
  25. }  
  26.   
  27. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  28. {  
  29.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  30. }  
  31.   
  32. @end  

代码1中的sender是指触发该方法的控件,titleForState是取出该控件的title,在正常状态下,因为button等控件是有正常状态,按下状态等区别的。取出title后将其赋给label,这样就可以实现点击不同的button来改变label的内容了。

 

另外,xib文件和viewController类的实例是通过interfaceBuilder来连接的,interfaceBuilder构建的xib文件中会有一个File's Owner,其实就是指的viewController类的实例,通过viewController实例来控件数据和视图。好了,下面需要把view和viewController联系起来了,方法非常简单:

第一步,先将xib文件代表的view和File's Owner代表的viewController联系起来,只需要在xib界面按下Control键,单击File's Owner并拖拽到View视图上即可。

第二步,将view中的三个控件与viewController中的三个输出口声明的变量相连接,如下图所示,在xib中选中一个控件时,在右上角一个向右箭头的图标表示:connection insector(连接检查)会出现一个new referencing outlet,这时点击右边的小圆圈往File's  Owner上面拖拽,拖到File's Owner上后会找到在viewController中定义的控件名,选择即可。bu1,bu2同理。

这样三个控件就和viewController中的控件相绑定了,我就是你你就是我,就可以进行操作了,但是现在我们绑定的只是控件而已,button的click方法我们还没有和button绑定,这时我们需要这样来:点击bu1后我们会在右边发现一栏如下图叫sent Events,代表该button的一些事件,里面有一个touch up inside,表示手指离开屏幕时,最后接触位置在该button上,也就是点击方法了,这时我们点击右边的小圆圈拖到File's Owner上,在出现的列表中选择我们定义好的click方法即可。bu2同理。

这时我们就将所有的控件和响应方法从xib文件对应到了viewController对象,我们在点击不同的button时,会根据sender找到button的title将其内容赋给label。好了,一起见证奇迹吧:

是不是很简单啊,基实还是表现了MVC的模式,controller连接view和model,而视图和数据老死不相往来。

分享到:
评论

相关推荐

    iphone开发入门经典源码

    iPhone开发入门经典》基于Apple最新发布的iPhoneOS3.0编写,循序渐进地介绍了从事iPhoneF发所需的基本知识,包括使用Xcode、Interface Builder、objective-C和(Cocoa Touch等开发工具,设计及美化用户界面,读写和...

    《iPhone开发实战》.(Christopher Allen).pdf

     本书适合所有 iphone开发人员学习参考。... 目录 第一部分 iphone编程简介. 第1章 iphone简介2 1.1 iphone核心规范3 1.1.1 iphone的输入及输出规范3 1.1.2 iphone网络规范4 1.1.3 iphone浏览器规范5...

    iphone3开发基础教程

    9.6 第三个子控制器:表行上的控件 205 9.7 第四个子控制器:可移动的行 211 9.7.1 编辑模式 211 9.7.2 创建一个新的二级控制器 212 9.8 第五个子控制器:可删除的行 217 9.9 第六个子控制器:可编辑的详细窗格 222 ...

    iPhone开发秘籍.part2.rar

    8.3 秘诀:为按钮响应制作动画效果.....196 8.4 秘诀:定制开关.....197 8.5 秘诀:添加自定义滑块缩略图.....200 8.6 秘诀:关闭UITextField 键盘.....204 8.7 秘诀:关闭UITextView 键盘.....205 8.8 秘诀:向文本...

    iPhone开发秘籍.part4.rar

    8.3 秘诀:为按钮响应制作动画效果.....196 8.4 秘诀:定制开关.....197 8.5 秘诀:添加自定义滑块缩略图.....200 8.6 秘诀:关闭UITextField 键盘.....204 8.7 秘诀:关闭UITextView 键盘.....205 8.8 秘诀:向文本...

    iPhone开发秘籍.part1.rar

    8.3 秘诀:为按钮响应制作动画效果.....196 8.4 秘诀:定制开关.....197 8.5 秘诀:添加自定义滑块缩略图.....200 8.6 秘诀:关闭UITextField 键盘.....204 8.7 秘诀:关闭UITextView 键盘.....205 8.8 秘诀:向文本...

    iPhone开发基础教程PDF(含源代码)

     1.4.4 有限的响应时间  1.4.5 有限的屏幕大小  1.4.6 有限的系统资源  1.4.7 缺少Cocoa工具  1.4.8 新属性  1.4.9 与众不同的方法  1.5 本书内容  1.6 准备开始吧  第2章 创建基本项目  2.1 在Xcode中...

    iPhone开发秘籍

    8.3 秘诀:为按钮响应制作动画效果 196 8.4 秘诀:定制开关 197 8.5 秘诀:添加自定义滑块缩略图 200 8.6 秘诀:关闭uitextfield键盘 204 8.7 秘诀:关闭uitextview键盘 205 8.8 秘诀:向文本视图添加一个撤销...

    最新iOS11开发教程swift4+xcode9

    最新iOS11开发教程swift4+xcode9,iOS 11开发概述 iOS 11新特性 编写第一个iOS 11应用 4 创建iOS11项目 4 运行iOS11程序 7 iOS11模拟器介绍 iOS11Main.storyboard文件编辑界面 编写第一个iOS11代码Hello,World 15 ...

    ios开发介绍及心得.docx

    iOS开发是针对Apple公司的iOS操作系统(iPhone、iPad等设备)的应用程序开发。它主要使用Swift和Objective-C两种编程语言,并借助Xcode集成开发环境进行开发。以下是一些iOS开发的核心概念以及我的一些心得体会: #...

    ios应用程序开发框架(iPhone源代码)

    来源:Licence:Custom平台:iOS设备:iPhone / iPad作者:定心天下  一个应用程序开发框架。作者实现了很多控件效果,方便其他开发者各取所需。所实现的效果包括:打分星星、响应点击动作、旋转按钮效果、根据...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法...

    《jQuery Mobile快速入门》.((美)Brad Broulik ).[PDF]

    具有一定开发经验的android开发人员和iphone/ipad开发人员在学完本书后,也可以通过一次编码,构建出可跨平台运行的app。 《jquery mobile快速入门》 第1章 jquery mobile简介 1 1.1 通用访问 1 1.2 跨所有...

    ceiling-fan-iot:吊扇控制-(无嗡嗡声)

    该项目的目的是开发一种无嗡嗡声的电子吊扇设备,该设备可以通过旋转编码器进行远程控制(IOT)或本地控制。 电子无嗡嗡声 为了防止嗡嗡声,使用电容电抗来限制电动机定子中的电流,并且由于摩擦力(叶片等)中等偏...

    cncjs:基于Web的界面,用于运行Grbl,Marlin,Smoothieware或TinyG的CNC铣削控制器

    设备宽度小于720px的小屏幕显示的响应式视图iPhone 5S上的Safari 可自定义的工作区 (自1.9.10版本开始) 自定义MDI(多文档界面)命令按钮(自1.9.13起) 我的账户 指令 大事记 多国语言支持 观看目录 (自...

    PitchPerfect:PitchPerfect允许用户通过设备麦克风录制声音,然后播放以六种不同方式之一调制的声音

    表2-录音控制按钮 恢复 暂停 停止 “记录视图”是应用程序启动后的初始视图,看起来像“点按即可记录” 。 点按活动的麦克风图标以开始录制: 视图将转换为“正在记录...” 。 “变灰”的图标处于非活动状态,...

    Frontend-Library:Web 前端资源库,含 CSS , JavaScript 等前端开发资源

    :party_popper:iphone X 缺口滚动条2jQuery 问答测试插件19 种漂亮的模态对话框效果页面变形过渡效果全屏滚动 jQuery 插件视差效果幻灯片轮播插件12 种基于 flexbox 的响应式创意定价表效果创意按钮进度条样式字母...

    Bootstrap前端框架 5.0.0 beta1

    Bootstrap是最受欢迎的HTML、CSS和JS的前端开发框架,用于开发响应式布局、移动设备优先的WEB项目,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式。Bootstrap 5.0.0 beta1 更新日志:2020-12-08特征#...

Global site tag (gtag.js) - Google Analytics