IOS开发学习笔记017-什么是IOS开发

应用程序开发流程

1、IOS开发需要思考的问题

  用户是谁?不同应用程序的内容和用户体验大不相同,这取决于想要编写的是什么应用程序,它可能是儿童游戏,也可能是待办事项列表应用程序,又或者是测试自己学习成果的应用程序。

  应用程序的用途是什么?赋予应用程序一个明确的用途十分重要。了解激发用户使用应用程序的动因是界定用途的一个出发点。

  应用程序尝试解决什么问题?应用程序应该完美解决单个问题,而不是尝试解决多个截然不同的问题。如果发现应用程序尝试解决不相关的问题,那么最好考虑编写多个应用程序。

  应用程序要呈现什么内容?考虑应用程序将向用户呈现的内容类型,以及用户与应用程序的互动方式,然后设计与之相称的用户界面。

刚开始开发应用程序时,不必定义完美或完整的应用程序概念。但有了概念之后,便会明确自己的开发目标和实现方法。

2、设计用户界面

  构建用户界面最大的挑战可能在于将概念转化为设计并实现该设计。可以使用串联图来简化这个过程。串联图使用图形环境来一步设计并实现界面。构建界面时,可以完全看到构建的内容,马上获得相关界面能否正常工作的反馈,并立即以可视化方式对界面进行更改。

  主要是在串联图中进行界面的设计和调试。

3、定义交互

  没有逻辑的支持,用户界面的功能便会很有限。创建界面后,可以通过编写代码以响应界面中的用户操作来定义用户与他们所看到内容的交互方式。

  在考虑为界面添加行为之前,了解 iOS 应用程序是基于事件驱动编程这一点很重要。在事件驱动编程中,应用程序的流程由事件决定:系统事件或用户操作。用户在界面中执行的操作会触发应用程序中的事件。这些事件会促使执行应用程序的逻辑并处理其数据。应用程序对用户操作的响应则会如实地反映在界面中。

  请从事件驱动编程的角度来定义用户与界面的交互方式。因为是用户而非开发者控制着何时执行应用程序的某部分代码。想要确认用户可以执行哪些操作以及如何响应这些操作。

4、实现行为 

  定义了用户可以在应用程序中执行的操作后,可以编写代码来实现行为。

  为 iOS 应用程序编写代码时,大多数时间都要用到 Objective-C 程序设计语言

  Objective-C 源于 C 程序设计语言,它提供了面向对象的功能以及动态运行时。它包含您熟悉的所有元素,例如基本类型(intfloat等)、结构、函数、指针以及流程控制结构(whileif...else 以及 for 语句)。还可以访问标准 C 库例程,例如在 stdlib.h 和 stdio.h 中声明的那些例程。

其他

常见的事件类型有三种:

  • 触碰和拖移事件。用户通过触碰或者拖移与控制交互时,发生的就是触碰和拖移事件。触碰事件分几个阶段。例如,当用户初次用手指触碰按钮,就会触发 Touch Down Inside 事件;如果用户手指拖离按钮,则会触发相应的拖移事件。当用户的手指抬离按钮但仍停留按钮边缘的范围内,就会发送 Touch Up Inside。如果用户在抬起手指前,手指已经拖离了按钮(实际上是取消了触碰),就会触发 Touch Up Outside 事件。
  • 编辑事件。用户编辑文本栏,发生的是编辑事件。
  • 值更改事件。用户对控制进行操控,从而导致控制产生一系列不同的值,发生的是值更改事件。

自适应窗口

使用 Auto Layout 放置文本栏

  1. 在项目导航器中,选择 Main.storyboard
  2. 在串联图中,选择文本栏。
  3. 在画布上,按住 Control 键从文本栏拖向场景顶部,直到文本栏四周皆为空白区域。此区域为文本栏的父视图。

    停止拖移操作时,其位置将出现一个快捷菜单。

  4. 从快捷菜单中选取“Top Space to Top Layout Guide”。

    在文本栏顶部和导航栏之间,将创建一个间距约束。

    如果出现了其他菜单(比如带有“Leading Space to Container”菜单项),则表示您没有垂直地拖到屏幕顶部。Xcode 会根据您拖移的方向来判断您打算生成哪一类约束,并根据拖移的起始点和结束点来判断约束要关联哪些对象。您可以继续尝试不同的拖移方向,以便了解有哪些约束可用。

  5. 尝试完之后,请按住 Control 键从文本栏向右拖移到父视图,以便创建“Trailing Space to Container”约束。
  6. 按住 Control 键从文本栏向左拖移到其父视图,以便创建“Leading Space to Container”约束。

运行就可以看到效果,旋转屏幕,文本栏会自动跟着方法缩小。

时间: 2024-08-01 20:23:47

IOS开发学习笔记017-什么是IOS开发的相关文章

移动开发学习笔记(一) 移动开发的注意事项

一.关于meta   (一).常用的公共meta属性 1.viewport <metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/> width=device-width   宽度是设备屏幕的宽度(像素) height=device-height 高度是设备屏幕的高度(像素)initial-scale    

IOS开发学习笔记-(2)键盘控制,键盘类型设置,alert 对话框

一.关闭键盘,放弃第一响应者,处理思路有两种 ① 使用文本框的 Did End on Exit 绑定事件 ② UIControl on Touch 事件 都去操作 sender 的  resignFirstResponder #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @pro

ios7开发学习笔记-包括c oc 和ios介绍

请查看我的新浪资料分享 http://iask.sina.com.cn/u/2430843520 ios7开发学习笔记-包括c oc 和ios介绍,布布扣,bubuko.com

iOS开发学习笔记:基础篇

iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行. 创建新工程 Xcode提供了很多种工程模

IOS开发学习笔记-(3) 进度条、等待动画开始停止

一.创建对应空间视图  ,如下图: 二.编写对应的 .h 代码,如下 : #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activWaitNetWork; @property (weak, nonatomic) IBOutlet UIProgressView *pgrsDownLo

IOS开发学习笔记(二)-语音识别(科大讯飞)

上次简单地讲解了如何利用科大讯飞完成语音合成,今天接着也把语音识别整理一下.当然,写代码前我们需要做的一些工作(如申请appid.导库),在上一篇语音合成的文章当中已经说过了,不了解的可以看看我上次的博文,那么这次直接从堆代码开始吧. 详细步骤: 1.导完类库之后,在工程里添加好用的头文件.在视图里只用了一个UITextField显示识别的内容,两个UIButton(一个开始监听语音,一个结束监听),然后引入类.添加代理,和语音合成的一样. MainViewController.h 1 #imp

IOS开发学习笔记(1)-----UILabel 详解

1. [代码][C/C++]代码     //创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];//设置背景色label1.backgroundColor = [UIColor grayColor];//设置taglabel1.tag = 91;//设置标签文本label1.text = @"Hello world!";//设置标签文本字体和字体大小label1.

IOS开发学习笔记(2)-----UIButton 详解

1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        

IOS开发学习笔记--语音合成(科大讯飞)

      现在语音服务越来越热,我们平时使用的很多软件都带有语音合成和识别功能,用起来也很方便.说到语音服务,Google和微软都提供过API接口,不过笔者要介绍的是国内的智能语音技术提供商---科大讯飞.之前看过一个比较Google.微软和科大讯飞语音识别引擎的博文(http://fqctyj.blog.163.com/blog/static/70843455201361955322797/),有兴趣可以去看看.笔者接触语音服务的时间也不长,对语音服务也不是很了解,但是拆解过科大讯飞的Dem