UI是App的根基:一个App应该是先有UI界面,而后在UI的基础上增长实用功能(2)UI相对简单易学:UI广泛是学习过程当中最简单的一块,能快速拥有成就感和学习兴趣(3)UI相当重要:开发中的绝大部分时间都在处理UIhtml
谨记一条IOS软件开发定律:万物皆对象,UI界面上的每个元素都是一个对象android
IOS,android 软件开发过程xcode
UIKit框架是跟UI有关系的,标签,文本,按钮,进度条,开关等控件,都是封装在UIKit框架内部的,UIKit框架中提供了丰富多彩的可视化组件 元素,利用UIKit框架提供的类来建立各类可视化组件对象,最后组成复杂而美观的UI界面。 为了方便开发者开发出强大的功能,苹果提供了各类各样的框 架(1)UIKit:建立和管理应用程序的用户界面(2)QuartzCore:提供动画特效以及经过硬件进行渲染的能力 (3)CoreGraphics:提供2D绘制的基于C的API(4)CoreLocation:使用GPS和WIFI获取位置信息(5)MapKit: 为应用程序提供内嵌地图的接口(6)AVFoundation:音频、视频处理(7)……性能优化
在开发过程当中须要用到一些特殊功能时,能够先尝试使用系统自带的框架。框架
经过一个简单的计算器的开发,来学习和认识IOS 开发的基础控件工具
分析一下这个简易的计算机程序 须要分哪几步进行:性能
(1): 须要两个输入框 是 text 按钮; + = 是lable 标签须要两个 还须要一个计算的 button;学习
(2)监听按钮的点击事件----点击计算按钮以后执行什么操做优化
(3)取得2个文本框值 将计算好的最终结果显示到右边的文本标签上动画
什么是控件?能在界面上看获得的,能够进行交互的,就是控件 经常使用的控件介绍:
上述这些都是控件;
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的子控件(子视图)。 每个新的界面都是一个新的UIView,在切换过程当中,涉及到了:一、UIView的建立和销毁二、UIView跟用户的交互(处理UIView内部每一行的点击)这 是视图控制器 viewController 的工做,UIView 负责显示,控制器来控制视图。每当显示一个新界面时,首先会建立一个新的UIViewController对象,而后建立一个对应的全屏 UIView,UIViewController负责管理这个UIView。UIViewController就是UIView的大管家,负责建立、显 示、销毁UIView,负责监听UIView内部的事件,负责处理UIView与用户的交互。大部分代码都是写在控制 器。 UIViewController内部有个UIView属性,就是它负责管理UIView对象
先进行 UI 设计,使用单视图页面进行开发(经常使用),Single View Application是最适合初学者的模板.
先来看一下故事板 就是上图中所描述的 storyboard 简单的说就是显示UI界面的程序
程序一启动就会显示箭头所指的界面 在iOS5以前,苹果使用xib文件来描述UI界面,在iOS5以后,苹果采起了更增强大和先进的storyboard文件来描述界面(Xcode5是基于iOS7),所以,能够得出结论:修改项目中的Main.storyboard文件就能够修改UI界面。 打开Main.storyboard文件一看,里面有一个全白的界面,这个界面就是模拟器上显示的界面。 往storyboard的界面中添加其余控件,得显示工具栏
注意:在属性查看器里,更改控件显示的内容,控件不会自动调节本身的宽度,而双击控件填写内容,控件会自动调整宽度来适应填写的内容。
所以可使用鼠标或者键盘的方向键进行调节,因为苹果的官方限制 在应该使用数字的地方,必须只能输入数字,不然没法经过。也就是说,原本应该输入数字,最起码弹出的键盘应该是数字键盘,而不是如图所示。改进方法:在属性查看器里,找到 keyboard 属性,修改成 number。
另外在新版本的 XCODE 里面取消了键盘和虚拟键盘以前的通用,若是模拟器不弹出虚拟键盘,须要将模拟器里面的键盘设置取消联接物理键盘便可.
和界面进行关联: 先点击 UI 按钮,而后按住 ctrl 键不放,会出现一条线将改线已到对应的方法上等待变为圆圈便可关联成功.
小结:
IOS 程序的开发步骤:
一、设计界面
二、连线关联
三、写代码实现功能(最难,最复杂 )
故事板:本质是一个 xml 文件,能够手动的设置程序启动时加载的storyboard是哪一个这个设置代表:程序启动时会加载Main.storyboard 了解延迟加载和懒加载的概念在程序须要的时候,才加载到内存里,效率上变低了,可是程序的内存消耗小了,这就是苹果手机的性能优化的好的缘由之一!
简单加法计算器的运行过程
1. 读取Main.storyboard文件
2.建立箭头所指的ViewController对象
3.根据storyboard文件中描述建立 ViewController的UIView对象
4.将UIView对象显示到用户眼前 如今已经知道:应该由ViewController来监听按钮的 点击,换句话说,ViewController应该提供一个方法出来,当用户点击按钮时,就调用这个方法来通知ViewController按钮被人点了。ViewController就在这个方法中实现想作的任何事情,好比计算2个文本输入框内值的和。 退出键盘的两种方式resignFirstResponder当叫出键盘的那个控件(第一响应者)调用这个方法时,就能退出键盘 endEditing只要调用这个方法的控件内部存在第一响应者,就能退出键盘 苹果官方建议:从 xcode5开始,把不对外开放的属性和方法声明,放到 .m 文件内。
A: 设置Text1 Text2 和 lable3属性:
1 // 2 // ViewController.h 3 // 01-第一个 IOS 程序 4 // 5 // Created by Stephen on 16/4/2. 6 // Copyright © 2016年 Stephen. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 11 @interface ViewController : UIViewController 12 // 申明一个方法来监听按钮的动做 13 14 - (IBAction)btnClick; // IBAction 对应的是方法 15 16 /* 17 BAction 和 IBOutlet区别 18 19 1. IBAction,从返回值角度上看,做用至关于void,只是返回值声明为IBAction的方法,才能跟storyboard中的控件进行连线 20 2. IBOutlet 用来和界面的元素创建关系,用来修改,得到界面控件的属性,故对应的是@property,而 IBAction 对应的是方法。只有声明为IBOutlet的属性,才能跟storyboard中的控件进行连线。 UIViewController是负责程序的控制,至关于管家的角色,而UIView 是负责界面的展现,联系 MVC 模式。严格来说,下图箭头所指的应该是一个UIViewController对象,里面白色的界面仅仅是UIViewController内部的UIView属性 21 22 */ 23 @property (nonatomic,weak) IBOutlet UITextField *num1; // Text 类型是UITextFiled 24 @property (nonatomic,weak) IBOutlet UITextField *num2; 25 26 @property (nonatomic, weak) IBOutlet UILabel *result; // UILable 是对应UI 的类型 27 28 29 30 @end
B:监听计算 button 的动做:
1 #pragma 监听按钮点击 2 3 - (void)btnClick{ 4 // 1.得到文本输入框的文字 5 NSString *text1 = self.num1.text; // 使用点语法调用 get 方法获取对应的值 text 6 NSString *text2 = self.num2.text; 7 // 2. 将string 字符串转换成整数 8 int i1 = [text1 intValue]; 9 int i2 = [text2 intValue]; 10 11 self.result.text = [NSString stringWithFormat:@"%d",i1 +i2];// 把整数转换成字符串 12 13 } 14 15 @end
http://www.th7.cn/Program/IOS/201502/398336.shtml