打开Xcode

选择项目模板

  • Single View Application是最适合初学者的模板

设置项目属性

运行程序

  • 不管怎样,先运行第一个iOS程序看看效果先(用快捷键Command + R 也行)

运行结果

  • Xcode会启动一个iOS模拟器来运行程序
  • 程序的运行结果如右图所示,白白一片
  • 后面我们得往这空白界面上增添各种各样的控件元素

窥探项目环境

  • 项目创建完毕后,自动帮我们做了很多配置,也自动生成了很多文件
  • 还自动添加了开发所依赖的框架:

如何搭建UI界面

  • 项目中这么多文件,哪些是影响着UI界面的呢?
  • 在iOS5之前,苹果使用xib文件来描述UI界面
  • 在iOS5之后,苹果采取了更加强大和先进的storyboard文件来描述界面(Xcode5是基于iOS7的)
  • 因此,可以得出结论:
  • 修改项目中的Main.storyboard文件就可以修改UI界面

窥探Main.storyboard

  • 打开Main.storyboard文件一看,里面有一个全白的界面
  • 其实这个界面就是模拟器上显示的界面
  • 左边的箭头表明:程序一启动就会显示箭头所指的界面

显示工具栏

  • 要想往storyboard的界面中添加其他控件,得显示工具栏

显示控件库

  • 以九宫格形式展示控件库,能同时看到更多的控件
  • 从右图中可以看到各种各样的控件,比如按钮、标签、文本输入框等等

添加控件

  • 鼠标左键,长按右边的某个控件,即可将它拖拽到左边的白色界面上

修改控件属性

  • 单击选中某个控件后,可以在右边的菜单工具栏中更改控件的属性

运行效果

  • 运行程序可以发现,软件界面基本搭建完毕,也能通过键盘输入数字了

增加监听按钮的方法

  • 打开MJViewController.m,在类扩展中增加方法声明

@interface MJViewController ()

// 这里先把IBAction看做是

void - (IBAction)compute;

@end

  • 在.m中声明的方法是私有方法,外界无法直接访问,保证了封装性
  • 增加方法实现:

@implementation MJViewController

- (void)compute

{

NSLog(@"点击了计算按钮");

}

@end

建立 按钮 与 方法 的联系

  • 接下来,就是建立按钮和compute方法之间的关系
  • 先点击storyboard,然后点击“中分”按钮

  • 现在已经能同时看到storyboard上的按钮 和 compute方法了,接下来建立它们之间的联系

  • 按住Control键,用鼠标左键将按钮拖线到compute方法上,然后松开

  • 方法左边的圈圈由空心变为实心,说明已经跟某个按钮进行了连线
  • 就这样,点击“计算”按钮,就会自动调用compute方法了

运行程序

  • 重新运行程序后,点击“计算”按钮,会发现控制台已经有输出信息

增加控件属性

  • 现在已经能够监听按钮的点击事件了,接下来应该在MJViewController的compute方法拿到两个文本框值,然后把计算结果显示到最右边的文本标签
  • 在类扩展中,声明3个属性,用来访问storyboard中的3个控件

  1. @property (nonatomic, weak) IBOutlet UITextField *number1;
  2. @property (nonatomic, weak) IBOutlet UITextField *number2;
  3. @property (nonatomic, weak) IBOutlet UILabel *result;
  • 提醒
  1. IBOutlet和weak的作用会在后面解释

  2. 初学者最容易犯、最不应该犯的一个错误:钻牛角尖

建立 控件 和 属性 的联系

  • 按住Control键,用鼠标左键将控件拖到对应属性上,然后松开
  • 利用MJViewController的number1属性就能访问第1个文本框;

  • 利用MJViewController的number2属性就能访问第2个文本框;

  • 利用MJViewController的result属性就能访问右边的文本标签。

计算和

  • 在compute方法中计算两个文本框的和,将结果显示到右边的标签中
  1. - (void)compute

  2. {

  3. // 获取第一个数值

  4. int num1 = [self.number1.text intValue];

  5. // 获取第二个数值

  6. int num2 = [self.number2.text intValue];

  7. // 设置文本标签的值

  8. self.result.text = [NSString stringWithFormat:@"%d", num1 + num2];

  9. }

UI控件 和 控制器的关系

02-第一个iOS程序-开发步骤的更多相关文章

  1. [IOS]从零开始搭建基于Xcode7的IOS开发环境和免开发者帐号真机调试运行第一个IOS程序HelloWorld

    首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772. ...

  2. ios程序开发杂记

    ios程序开发杂记 一.程序构建 与一般的程序构建无太大区别,都是源文件编译链接这一套,通常是在mac上做交叉编译,也就是利用xcode里带的ios编译工具集去生成arm架构的ios程序(或是x86的 ...

  3. 从安装Mac OS X虚拟机到第一个IOS程序

    对于纯粹地抄这种行为是比较抵触的,别人已经写得挺好的东西没必要又去写一遍,但如果不写经验来看下次再做时自己又要重复百度筛选一遍,所以还是要记一记. 之前要获取IOS静态库的版本,但一直以来没有Mac没 ...

  4. 02-第一个iOS程序

    第一个iOS程序 第一个iOS程序简介 初学iOS开发,研究的程序不要过于复杂,应该从最基本的开始 大房子都是由小砖一块一块堆成的,而大型app是由无数个小程序段组成的 接下来实现一个简单的“加法计算 ...

  5. iOS开发系列--IOS程序开发概览

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

  6. 第一个iOS程序:Hello iOS

    今天我们来创建第一个iOS程序:Hello iOS!不需要写任何代码就能实现:

  7. 轻量级应用开发之(01)第一个IOS程序

    一 IPhone轻量级开发 1. 开发环境 Mac 版本: OS X EICap 10.11.3 (15D21) XCode开发版本: Version 7.2.1 (7C1002) 2.简单分析 UI ...

  8. IOS程序开发中-跳转到 发送短信界面 实现发短信

    前言:我发现我标题取的不好,谁帮我取个承接上下文的标题?评论一下,我改 项目需求:在程序开发中,我们需要在某个程序里面发送一些短信验证(不是接收短信验证,关于短信验证,传送门:http://www.c ...

  9. iOS 程序开发

    准备 iOS 开发 之 编程知识点 iOS 程序调试 iOS 之 OC开发实战 iOS 架构模式 iOS 之 新功能.扩展

随机推荐

  1. Cookie的应用实例

    ASP.NET设置元素CSS属性 1.添加一条CSS规则: control.style.add("CSS名称",“CSS值”); 2.添加Class规则 Control.CSSCl ...

  2. goto语句和标签

    goto 语句用于将执行流更改到标签处,虽然t-sql和pl/sql都提供了该语句,但是作为编程而言,我们不推荐使用此编程技术.要编写一个标签,应当在标识符后面加一个冒号.列如,下面示例使用goto语 ...

  3. Android活动的启动模式

    1. standard 标准模式,是活动默认的启动模式,在不进行显示指定的情况下,所有活动都会自动使用这种模式. Android使用返回栈管理活动,在standard模式下,每当启动一个新的活动,它就 ...

  4. Jquery系列:textarea常用操作

    1.textarea内容的读取与设置 读textarea文本值可以用name和id.而写入文本值只能用id. <textarea name="content" id=&quo ...

  5. 洛谷P1970 花匠(dp)

    题意 题目链接 Sol 直接用\(f[i][0/1]\)表示到第\(i\)个位置,该位置是以上升结尾还是以下降结尾 转移的时候只需枚举前一个即可 #include<cstdio> #inc ...

  6. CSS 兼容性支持

    CSS 兼容性支持 在一个CSS属性还没有成为标准之前,各浏览器厂商已经做了这个属性的实现,可能各浏览器实现不尽相同,所以加入属性前缀区分. safari , chrome:-webkit- oper ...

  7. Eclipse equinox implementation of OSGi

    Bundle package org.osgi.framework; public interface Bundle extends Comparable<Bundle> { int UN ...

  8. 【阿里云产品公测】小白对OTS两点小建议

    作者:阿里云用户荷包蛋 我是大一的新生,作为一个爱技术爱学习爱折腾的熊孩子,我在暑假申请了ECS,学到了很多东西.现在阿里巴巴又开放了很多免费测试,我抱着学习和围观的心态申请了测试,其中有OTS这个高 ...

  9. ArcGIS软件操作——地图制图

    ArcGIS软件操作系列二(地图制图) 2016年毕业,参加工作,除了平时出差,大部分时间都在使用ArcGIS处理数据.制图,在此,先将一些制图的小心得撰写出来,希望能与各位共同交流. 1 数据准备: ...

  10. matlab绘图(详细)(全面)

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...