1.打开Xcode,新建一个项目
2.Single View Application是最适合初学者的模板
3.填写该应用相关信息
4.搭建UI界面
项目创建完毕后,自动帮我们做了很多配置,也自动生成了很多文件
还自动添加了开发所依赖的框架
项目中这么多文件,哪些是影响着UI界面的呢?在iOS5之前,苹果使用xib文件来描述UI界面,在iOS5之后,苹果采取了更加强大和先进的storyboard文件来描述界面(Xcode5是基于iOS7的)因此,可以得出结论:修改项目中的Main.storyboard文件就可以修改UI界面。
打开Main.storyboard文件一看,里面有一个全白的界面,其实这个界面就是模拟器上显示的界面,左边的箭头表明:程序一启动就会显示箭头所指的界面。
要想往storyboard的界面中添加其他控件,得显示工具栏:
以九宫格形式展示控件库,能同时看到更多的控件。
从右图中可以看到各种各样的控件,比如按钮、标签、文本输入框等等
5.鼠标左键,长按右边的某个控件,即可将它拖拽到左边的白色界面上
6.单击选中某个控件后,可以在右边的菜单工具栏中更改控件的属性
7.设置文本输出框只可以输入数字和小数点
8.运行程序可以发现,软件界面基本搭建完毕,键盘输入数字了。
9.监听按钮点击
打开MJViewController.m,在类扩展中增加方法声明
@interface MJViewController ()
// 这里先把IBAction看做是void
- (IBAction)compute;
@end
@implementation MJViewController
- (void)compute
{
NSLog(@"点击了计算按钮");
}
@end
接下来,就是建立按钮和compute方法之间的关系
先点击Main.storyboard,然后点击“中分”按钮
现在已经能同时看到storyboard上的按钮 和 compute方法了,接下来建立它们之间的联系
按住Control键,用鼠标左键将按钮拖线到compute方法上,然后松开

方法左边的圈圈由空心变为实心,说明已经跟某个按钮进行了连线

就这样,重新运行程序后,点击“计算”按钮,就会自动调用compute方法了,控制台已经有输出信息

现在已经能够监听按钮的点击事件了,接下来应该在MJViewController的compute方法拿到两个文本框值,然后把计算结果显示到最右边的文本标签
在类扩展中,声明3个属性,用来访问storyboard中的3个控件
@property (nonatomic, weak) IBOutlet UITextField *number1;
@property (nonatomic, weak) IBOutlet UITextField *number2;
@property (nonatomic, weak) IBOutlet UILabel *result;
按住Control键,用鼠标左键将控件拖到对应属性上,然后松开
  • 利用MJViewController的number1属性就能访问第1个文本框;
  • 利用MJViewController的number2属性就能访问第2个文本框;
  • 利用MJViewController的result属性就能访问右边的文本标签。
在compute方法中计算两个文本框的和,将结果显示到右边的标签中
- (void)compute
{
// 获取第一个数值
int num1 = [self.number1.text intValue];
// 获取第二个数值
int num2 = [self.number2.text intValue];
// 设置文本标签的值
self.result.text = [NSString stringWithFormat:@"%d", num1 + num2];     //参数表示强行关闭键盘,始终使用YES作为参数
    [self.view endEditing:YES];
}

OK,大功告成!看效果

 

iOS UI基础-1.0加法计算器的更多相关文章

  1. iOS UI基础-17.0 UILable之NSMutableAttributedString

    在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求.之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦 ...

  2. iOS UI基础-9.0 UITableView基础

    在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView.UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳. UITableView有两种样式: ...

  3. iOS UI基础-4.0应用程序管理

    功能与界面 功能分析: 以九宫格的形式展示应用信息 点击下载按钮后,做出相应的操作 步骤分析: 加载应用信息 根据应用的个数创建对应的view 监听下载按钮点击 整个应用界面: 程序实现 思路 UI布 ...

  4. iOS UI基础-19.0 UICollectionView

    直接上代码,说明请看注释吧 1.继承三个代理 UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateF ...

  5. iOS UI基础-16.0 UIButton

    回归自然,UIButton是我们使用最频烦的一个控件.下面,对该控件的一些常用方法进行一些总结. UIButton *payStateBtn = [UIButton buttonWithType:UI ...

  6. iOS UI基础-15.0 UIWebView

    WebView介绍 知识点: 代码创建一个UIWebView OC调用html的js js页面调用OC 相关代码实现 代码创建一个UIWebView // 1.webView UIWebView *w ...

  7. iOS UI基础-13.0 数据存储

    应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Lay ...

  8. iOS UI基础-12.0 Storyboard

    storyboard创建控制器 1.先加载storyboard文件(Test是storyboard的文件名) UIStoryboard *storyboard = [UIStoryboard stor ...

  9. iOS UI基础-10.0 QQ聊天布局之键盘及文本使用

    要实现的效果:   这里只说用到的几个知识点 1.图片包含文字 在设置文字的Frame的时候,使用背景(按钮)的尺寸,文字使用了内边距 背景图片,使用拉伸 /** * 返回一张可以随意拉伸不变形的图片 ...

随机推荐

  1. vue笔记 - 生命周期第二次学习与理解

    对于刚接触vue一两个月.才仅仅独立做过一两个vue项目的小白来说,以前一直自我感觉自己知道vue的生命周期, 直到前两天去面试,面试官让我说一下vue的生命周期... 其实我的心中是有那张图的,但是 ...

  2. 渗透中Meterpreter基本操作和对应的windows上的排查或者现象

    Meterpreter的简单介绍 Meterpreter 是MSF自带一个强大的SHELL,可以执行很多功能. Meterpreter SHELL 基本操作 meterpreter>backgr ...

  3. MySQL知识小结

    MySQL的知识面试中还是经常被问到的,简单的使用似乎无法达到面试官的要求,很多问题会关于Mysql存储引擎,所以这里还是需要系统学习一下Mysql的一些知识,面试过程中游刃有余. MySQL体系结构 ...

  4. Bulk Convert DOC to DOCX

    原文链接 :http://blogs.msdn.com/b/ericwhite/archive/2008/09/19/bulk-convert-doc-to-docx.aspx 帮助文档:http:/ ...

  5. iOS - Block的循环引用内存泄漏问题探索

    循环引用的原因 众所周知,ARC下用block会产生循环引用的问题,造成泄露的原因是啥呢? 最简单的例子,如下面代码: [self.teacher requestData:^(NSData *data ...

  6. vue 报错./lib/html5-entities.js this relative module was not

    原文参考http://www.bozhiyue.com/web/yuyan/2017/0501/1236324.html 然后就把他俩注视了,是不报错了,但是也没有运行不出来: 居然是因为早上我360 ...

  7. 影响SEO 搜索引擎优化的网页制作细节

    1.将css与javascript全部用下边的方法分离到外部文件中去. [html]<link rel=”stylesheet” type=”text/css” href=”css/style. ...

  8. LightOj 1030 - Discovering Gold(dp+数学期望)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1030 题意:在一个1*n 的格子里,每个格子都有相应的金币数,走到相应格子的话,就会得 ...

  9. How Many Answers Are Wrong----hdu3038(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 题意:数组第 a 个元素到第 b 个元素之间的和为sum: 求有几句话是假的,如果与前面的话有冲 ...

  10. 基础邮件原理(MUA,MTA,MDA)

    电子邮件基本概念: MUA(Mail User Agent)接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信: MTA(Mail Transfer Agent) 通过SMTP协议发送 ...