第一个iOS程序

第一个iOS程序简介

  • 初学iOS开发,研究的程序不要过于复杂,应该从最基本的开始
  • 大房子都是由小砖一块一块堆成的,而大型app是由无数个小程序段组成的
  • 接下来实现一个简单的“加法计算器”,作为第一个iOS程序(Hello World)
  • 分析可得,至少需要开发步骤:

  1. 添加需要的控件,搭建UI界面:1个按钮、3个文本标签、2个文本输入框

  2. 监听按钮的点击事件

  3. 取得2个文本框值,将计算好的最终结果显示到右边的文本标签上

掌握

  • 往storyboard中添加控件

  • UIViewController和UIView的关系

  • 程序的运行过程

  • IBAction、IBOutlet的作用

  • 如何监听控件的事件(比如按钮的点击事件)

  • 父控件和子控件的概念

  • 退出键盘

作业

  • 制作一个QQ登录界面

  • 要求:

  1. QQ文本框要有“请输入QQ”的文字提示(用户输入文字时会自动消失)

  2. 密码文本框要有“请输入密码”的文字提示(用户输入文字时会自动消失)

  3. QQ文本框只能输入数字

  4. 密码文本框的文字必须是暗文显示

  5. 点击登录按钮后输出用户输入的QQ和密码,并且退出键盘

Storyboard文件

  • 在iOS5之前,苹果使用xib文件来描述UI界面

  • 在iOS5之后,苹果采取了更加强大和先进的storyboard文件来描述界面(Xcode5是基于iOS7的)           

  • 左边的箭头表明:程序一启动就会显示箭头所指的界面

UILabel – 文本标签

  • 文本标签的作用仅仅是显示一串固定的文字

UIButton – 按钮

  • 按钮的作用是:监听用户的点击事件,在用户点击后做出反应

UITextField – 文本输入框

  • 文本输入框可以弹出键盘,让用户输入一些具体的值

UIView

  • 屏幕上能看得见摸得着的东西就是UIView,比如屏幕上的按钮、文字、图片
  • 一般翻译叫做:视图\控件\组件
  • UIButton、UILabel、UITextField都继承自UIView
  • 每一个UIView都是一个容器,能容纳其他UIView(比如右图中的整个键盘是一个UIView,里面容纳很多小格子的数字UIView)

父控件和子控件

  • 在“加法计算器”中,最后面那块白色的全屏的东西也是一个UIView
  • 白色的大UIView中容纳了很多小的UIView,视图层次结构如下图所示
  • 在白色的大UIView中,容纳了6个小UIView(1个UIButton、2个UITextField、3个UILabel)

  • 这种情况下,我们可以称白色的大UIView为6个小UIView的父控件(父视图),6个小UIView都是白色大UIView的子控件(子视图)

UIViewController

  • 手机上自带的“设置”中有很多的界面,点击对应的选项可以跳到下一个界面
  • 每一个新的界面都是一个新的UIView,在切换过程中,涉及到了:

  1. UIView的创建和销毁

  2. UIView跟用户的交互(处理UIView内部每一行的点击)

  • 其实,每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,UIViewController负责管理这个UIView

  • UIViewController就是UIView的大管家,负责创建、显示、销毁UIView,负责监听UIView内部的事件,负责处理UIView与用户的交互

  • UIViewController内部有个UIView属性,就是它负责管理的UIView对象 :

  1. @property(nonatomic,retain) UIView *view;
  • 严格来讲,下图箭头所指的应该是一个UIViewController对象,里面白色的界面仅仅是UIViewController内部的UIView属性

  • 箭头所指UIViewController的真实类型是MJViewController

加法计算器程序的运行流程

  • 综合分析,可以得出程序的简单运行流程:
  1. 读取Main.storyboard文件
  2. 创建箭头所指的MJViewController对象
  3. 根据storyboard文件中描述创建MJViewController的UIView对象
  4. 将UIView对象显示到用户眼前

如何监听按钮点击

  • 现在已经知道:应该由MJViewController来监听“计算”按钮的点击
  • 换句话说,MJViewController应该提供一个方法出来,当用户点击“计算”按钮时,就调用这个方法来通知MJViewController按钮被人点了
  • MJViewController就在这个方法中实现想做的任何事情,比如计算2个文本输入框内值的和

补充问题

  • IBAction和IBOutlet究竟有什么作用?
  • 还有其他拖线方式么?
  • Storyboard文件中箭头的含义?
  • 如何更换storyboard文件?
  • 如何让文本框只能输入数字?
  • 如何退出键盘?
  • Company Identifier和Bundle Identifier的作用
  • 模拟器还有哪些功能?
  • 特别提醒:iOS7和iOS6的区别

IBAction和IBOutlet

  • IBAction
  1. 从返回值角度上看,作用相当于void
  2. 只有返回值声明为IBAction的方法,才能跟storyboard中的控件进行连线
  • IBOutlet
  1. 只有声明为IBOutlet的属性,才能跟storyboard中的控件进行连线

设置程序启动时加载的storyboard

  • 这个设置表明:程序启动时会加载Main.storyboard

设置UITextField的键盘类型

  • 这个设置表明:UITextField弹出的是数字键盘

退出键盘的两种方式

  • resignFirstResponder
  1. 当叫出键盘的那个控件(第一响应者)调用这个方法时,就能退出键盘
  • endEditing
  1. 只要调用这个方法的控件内部存在第一响应者,就能退出键盘

02-第一个iOS程序的更多相关文章

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

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

  2. 第一个iOS程序:Hello iOS

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

  3. 02-第一个iOS程序-开发步骤

    打开Xcode 选择项目模板 Single View Application是最适合初学者的模板 设置项目属性 运行程序 不管怎样,先运行第一个iOS程序看看效果先(用快捷键Command + R 也 ...

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

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

  5. 【IOS学习】1.第一个IOS程序

    1.执行原理 a.首先执行main函数 调用UIApplicationMain方法 return UIApplicationMain(argc, argv, nil, NSStringFromClas ...

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

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

  7. 一个iOS程序员眼中的跨域问题

    摘要: 跨域问题是web开发领域一个常见的问题,相信每个web开发者都遇到"跨域"的问题 最近公司的iOS开发任务比较少,所以自己最近开始了Web开发的任务,在用H5做了很多页面, ...

  8. 02第一个OC程序

    一.打开XCode4.6.3,新建项目 二.选择Application下的命名行项目 三.输入项目名称,选择Foundation框架创建项目,点击Next 四.二话不说.点击Run.启动我们创建的项目 ...

  9. 第一个ios程序

    1.ios的理解: Operating System,简称OS,操作系统,ios是苹果操作系统. 2.Xcode开发环境: 苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷 ...

随机推荐

  1. UWP 应用获取各类系统、用户信息 (1) - 设备和系统的基本信息、应用包信息、用户数据账户信息和用户账户信息

    应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...

  2. Android活动的启动模式

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

  3. cf1072D. Minimum path(BFS)

    题意 题目链接 给出一个\(n \times n\)的矩阵,允许修改\(k\)次,求一条从\((1, 1)\)到\((n, n)\)的路径.要求字典序最小 Sol 很显然的一个思路是对于每个点,预处理 ...

  4. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  5. Oracle数据库克隆后temp文件因路径变化无法找到问题

    Oracle数据库克隆后temp文件因路径变化无法找到出现如下报错Errors in filexxxx.trc:ORA-01157: cannot identify/lock data file xx ...

  6. MSMQ学习笔记一——概述

    一.MSMQ是什么 Message Queuing(MSMQ) 是微软开发的消息中间件,可应用于程序内部或程序之间的异步通信.主要的机制是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为M ...

  7. SQL server 2008 安装报错 reporting services catalog database file existence

    SQL server 2008 安装时报错 提示 reporting services catalog database file existence 查了一下,是因为原来装过Sql server 2 ...

  8. ftp免交互上传文件脚本

    ftp -i -n <<! open .x.x.x user yourFtpAccount yourPasswd cd /root/DailyBuild/webapps/ delete x ...

  9. 【转载】#440 - A Class Can Implement More than One Interface

    It's possible for a class to implement more than one interface. For example, a Cow class might imple ...

  10. OC extern和变量

    注意: extern只能用来声明全部变量,不能拿来定义变量 #include <stdio.h> // 第一种做法是将a定义在main函数的前面 // int a; // 完整地声明全部变 ...