2010年前,移动操作系统曾呈现“百花齐放”的态势,其中有Nokia(诺基亚)的Symbian、BlackBerry(黑莓)的BlackBerry OS、Google(谷歌)的Android、Apple(苹果)的iOS、Microsoft(微软)的Windows Phone等,但随着时间的推移,iOS和Android操作系统几乎占据了移动操作系统的全部市场份额。本书聚焦iOS自动化测试。接下来,让我们简单了解一下iOS。
iOS(iPhone Operating System)是由苹果公司开发的移动操作系统。该系统最初是供iPhone使用的,后来陆续应用到iPod touch、iPad和Apple TV等产品上。iOS与苹果公司的macOS一样,属于类Unix的商业操作系统。iOS是软件应用程序与设备硬件之间的桥梁。软件应用程序首先与iOS的接口通信,iOS收到信息后与底层硬件交互,从而完成软件应用程序要完成的任务。iOS架构分为4层,从下到上依次为Core OS层、Core Services层、Media层和Cocoa Touch层。
开发者使用iOS控件来解决用户与iOS平台界面交互的问题。下面简要介绍一下iPhone的常用控件。
窗口(UIWindow)控件是App中处于底层的、固定不变的控件。iPhone的规则是一个窗口中可以放置多个视图。
视图(UIView)控件是开发者构建界面的基础,所有的控件都是在这个界面上“画”出来的,可以把它当成画布。开发者可以通过视图控件增加控件,并利用控件与用户进行交互。
窗口控件和视图控件是非常基本的控件,创建任何类型的UI都要用到它们。窗口表示屏幕上的一个几何区域,视图控件用自身的功能“画”出不同的控件,如导航栏、按钮等都附着在视图控件之上,一个视图会链接到一个窗口。
视图控制器(UIViewController)的主要功能是对视图控件进行管理和控制,你可以在视图控制器中控制显示某个具体的视图控件。另外,视图控制器还增添了额外的功能,如内置的旋转屏幕、转场动画,以及对触摸等事件的支持。
数据展示视图包含以下内容。
● UITextView:将文本段落呈现给用户,并允许用户使用键盘输入文本。
● UILabel:实现短的只读文本,通过设置视图属性为标签选择颜色、字体和字号等。
● UIImageView:通过UIImage加载图片,并将图片赋给UIImageView,加载后可以指定图片显示的位置和大小。
● UIWebView:提供并显示HTML(HyperText Markup Language,超文本标记语言)文件、PDF文件等其他高级的Web内容,包括Excel、Word等文档等。
● MKMapView:通过MKMapView向App嵌入地图,很多热门的LBS(Location-Based Service,基于位置的服务)App就是基于MKMapView来做的,结合MKAnnotation- View和MKPinAnnotationView类注释地图。
● UIScrollView:一般用来呈现超出正常的程序窗口的一些内容,可以通过水平和竖直滚动来查看全部的内容,并且支持缩放功能。
用户选择视图包含以下内容。
● UIAlertView:通过警告视图让用户选择或者向用户显示文本。
● UIActionSheet:类似于UIAlertView,但当选项比较多的时候可以操作表单,它提供从屏幕底部向上滚动的菜单。
其他的控件如下。
● UIButton:用于调用想要执行的方法。
● UISegmentControl:可以设置多个选项,当触发相应的选项时,调用不同的方法。
● UISwitch:可以选择开或者关。
● UISlider:用于控制音量等。
● UITextField:用于显示所给的文本。
● UITableView:用于自定义需要的表格视图,表头和表身都可以自定义。
● UIPickerView:一般用于日期的选择。
● UISearchBar:一般用于查找。
● UIToolBar:一般用于搭建主页面的框架。
● UIActivityIndicatorView:用于指示某项活动正在进行中,如正在加载数据、正在进行网络请求等。
● UIProgressView:一般用于显示下载的进度。
但是随着iPhone的日益流行,iPhone原生的控件难以满足产品日益增长的功能需要,iPhone开始鼓励用户创新,因此出现了更多的iPhone控件,使开发者可以将现有的技术应用在iPhone平台上,并创建更好的界面、Web应用程序和App。