《iOS 8应用开发入门经典(第6版)》——第2章,第2.2节使用iOS模拟器

简介:

本节书摘来自异步社区《iOS 8应用开发入门经典(第6版)》一书中的第2章,第2.2节使用iOS模拟器,作者 【美】John Ray(约翰 雷),更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 使用iOS模拟器
iOS 8应用开发入门经典(第6版)
第1章说过,甚至不需要有iOS设备就可进行iOS开发,其原因是Xcode包含iOS模拟器。该模拟器很好地模拟了Apple iPhone和iPad,包含Safari、通讯录、设置、Game Center、日历、地图、报刊杂志(Newsstand)、健康(Health)、Passbook等应用程序用于集成测试,如图2.31所示。

在早期针对模拟器进行开发可节省大量的时间:您无需等到将应用程序安装到实际设备就可看到修改代码的效果。另外,您无需购买并安装开发人员证书就可在模拟器中运行代码。

然而,模拟器并非完美的iOS设备,它不能模拟复杂的多触点事件,也不能提供有些传感器(陀螺仪、加速计等)的真实读数。在这些方面,它最多只能旋转以测试横向界面以及模拟简单的“摇动”。虽然如此,对大多数应用程序来说,其功能足够了,是开发过程的重要组成部分。

警告:
在Mac上运行得快并不意味着在iPhone上也运行得快

对模拟器来说,绝对不能指望的一点是,模拟的应用程序性能类似于实际应用程序性能。模拟器通常运行得非常流畅,而实际应用程序可使用的资源可能更有限,因此性能没有在模拟器中好。请务必偶尔在实际设备中进行测试,以确保预期与实际情况一致。


604bcecd1ce9a4cde8ec2e8e620393fcccee386b

2.2.1 启动应用程序
要在模拟器中启动应用程序,可在Xcode中打开项目,确保生成方案被设置为您选择的iOS设备(iPad Air、iPhone 6、iPhone 6 Plus等),再单击Run按钮。几秒钟后,模拟器将启动并加载应用程序。您可使用本章的文件夹Hour 02Projects中的HelloSimulator项目对此进行测试。

启动并运行后,应用程序HelloSimulator将显示一行文本以及一幅从网站下载的图像,如图2.32所示。

应用程序运行后,您便可使用鼠标与其交互,就像使用手指一样:单击按钮、拖曳滑块等。如果您单击应用程序希望获得输入的字段,将显示屏幕键盘。您可使用Mac键盘输入,也可通过单击屏幕上的键盘按钮来输入。还可模拟iOS的复制并粘贴服务,方法是在文本中单击并按住鼠标,直到出现熟悉的放大镜。

单击Xcode工具栏中的Stop按钮退出应用程序。也可在模拟器中单击虚拟的主屏幕(Home)按钮或选择菜单Hardware>Home,但Xcode将以为应用程序还在运行,导致不同步。


e9a62f82b72ad4e0359abbb2153ab9fe91d7b68a

注意:
在模拟器中启动应用程序将在模拟器中安装它,就像在iOS设备中安装应用程序一样。退出应用程序后,它仍保留在模拟器中,直到您手工删除它。

要从模拟器中删除已安装的应用程序,可在其图标上单击并按住鼠标直到它开始摇摆,然后单击出现在左上角的X。换句话说,将应用程序从模拟器中删除的方法与将其从iOS设备中删除完全相同。

要将模拟器重置到原始状态,可从iOS模拟器菜单中选择Reset Content and Settings。

提示:
可随时切换到其他设备,为此只需在菜单Hardware>Device中选择相应的菜单项。

2.2.2 模拟多点触摸事件
虽然只有一个鼠标,但可在光标位于iOS模拟器屏幕上时按住Option键来模拟简单的多点触摸事件,如两个手指合拢和张开。这将绘制两个表示手指的圆圈,并可使用鼠标来控制它们。要模拟多点触摸事件,可在按住Option键的情况下单击并拖曳。图2.33显示了两个手指合拢手势。

请使用应用程序HelloSimulator来尝试这些操作,您应该能够使用模拟器的多点触摸功能来缩放屏幕上的文本和图像。


1810a71a73a7a88faa398c6c9d3a423aca74f9ef

提示:
在模拟器中,要移动模拟的指尖(例如,以便能够在屏幕底部附近执行合拢手势),可按住Shift键并拖曳模拟的指尖。只要按住Shift键不放,就可将模拟的指尖移动到任何地方。

2.2.3 旋转模拟的设备
要模拟设备旋转,可从菜单Hardware中选择Rotate Right或Rotate Left,如图2.34所示。您可使用这些菜单项将模拟器窗口旋转到全部4种可能的朝向,并查看屏幕上的结果。


c510cf92d19b1bf3c5e560de50e7190f204095a0

同样,使用HelloSimulator对此进行测试。该应用程序将对旋转事件做出反应:相应地调整文本的方向并获取一幅新图像。

2.2.4 模拟其他情况
您可能想在模拟器中测试其他几种独特的情形。使用Hardware菜单可访问如下功能。

Device(设备):选择其他设备,模拟应用程序在这些设备上的运行情况。
Shake Gesture(摇动手势):模拟快速摇动设备。

Home(主屏幕):模拟按下Home(主屏幕)按钮的效果。

Lock(锁定):模拟锁定的设备。由于用户可在应用程序运行时锁定iPhone和iPad,有些开发人员选择让其应用程序以独特的方式对此做出反应。

Simulate Memory Warning(模拟内存警告):触发应用程序的内存太少事件,这对测试应用程序能否在资源太少时妥善地退出很有用。
Toggle In-Call Status Bar(切换来电状态栏):当应用程序运行时,如果有来电,屏幕顶部将出现另一条线(触摸它可切换到电话)。该选项模拟该直线。
Simulate Hardware Keyboard(模拟键盘):模拟连接的键盘,只需使用Mac键盘即可。
TV Out(电视输出):显示一个窗口,其中显示了设备的电视输出信号的内容。本书不使用这项功能。
请在应用程序HelloSimulator中对上述情况进行测试。图2.35显示了该应用程序对模拟摇动手势做出的反应。


0d680fc94f54fb55d1e22baa6a19328359c53b92

警告:
在iOS应用程序崩溃时恢复

如果应用程序在iOS模拟器中运行时出现问题并崩溃,Xcode将显示调试器。要在应用程序崩溃时恢复,可单击Xcode工具栏中的Stop按钮退出应用程序,再隐藏调试器并检查代码。第24章将介绍如何使用调试器找出导致应用程序崩溃的bug。

2.2.5 添加其他要模拟的设备
默认情况下,Xcode只显示在售的Apple iOS设备及其模拟选项(可在Xcode的下拉列表Scheme和模拟器的Devices菜单中找到它们)。要添加其他设备,可在模拟器中选择菜单Hardware>Device>Manage Devices,如图2.36所示;也可在Xcode中选择菜单Window>Devices。


d4eafdf329aa65fa6848a4a776b63d8cca7e29c9

这将打开Devices窗口,其中列出了可用的模拟器硬件和iOS版本,如图2.37所示。


p><p><div style=
82d8ed5253ac01008382a1c7c91f4161225480df

输入模拟器的名称,选择设备类型和iOS版本,再单击Create按钮。新建的模拟器将立即出现在Xcode和iOS模拟器中。

提示:
大小可调整的设备

在模拟器中,可添加两种特殊设备:大小可调整的iPhone和iPad。它们模拟的并非真实设备,而是可手工设置屏幕高度和宽度的模拟器。

虽然谁也不知道Apple未来将推出什么样的设备,但这些大小可调整的设备可帮助我们在任何想象得到的屏幕上测试应用程序。

相关文章
|
4天前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:使用 Core Image 和 Metal 进行高效滤镜应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能是现代应用程序开发中的一个关键需求。苹果的iOS平台提供了Core Image和Metal两大技术,它们为开发者提供了强大的工具来实现复杂的图像处理任务。本文将探讨如何使用Core Image进行基础图像处理,并结合Metal的性能优势,开发出一个自定义的实时图像滤镜。我们将通过创建一个能够动态调整参数并且具有实时反馈效果的滤镜来演示这一过程。
|
4天前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:Core Image 框架的应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能,对于提升用户体验和扩展应用程序能力至关重要。苹果公司的iOS平台提供了强大的Core Image框架,它允许开发者以高效和直观的方式执行复杂的图像处理任务。本文将深入探讨Core Image框架的关键特性,并通过实例演示如何在iOS应用中集成实时图像处理功能,不仅提高性能,同时保持了电池寿命的优化。我们将重点讨论面部识别、滤镜应用和性能优化等关键技术点,为读者提供一份全面的iOS图像处理指南。
|
4天前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
4天前
|
开发者 iOS开发
iOS应用上架详细图文教程(上)
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
|
4天前
|
Swift iOS开发 开发者
iOS 应用上架流程详解
iOS 应用上架流程详解
|
4天前
|
Android开发 iOS开发 UED
appuploader   iOS 应用自动发布
appuploader   iOS 应用自动发布
|
4天前
|
存储 Swift iOS开发
使用Swift开发一个简单的iOS应用的详细步骤。
使用Swift开发iOS应用的步骤包括:创建Xcode项目,设计界面(Storyboard或代码),定义数据模型,实现业务逻辑,连接界面和逻辑,处理数据存储(如Core Data),添加网络请求(必要时),调试与测试,根据测试结果优化改进,最后提交至App Store或其它平台发布。
39 0
|
4天前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
4天前
|
存储 安全 Swift
【Swift 开发专栏】使用 Swift 开发一个简单的 iOS 应用
【4月更文挑战第30天】本文介绍了使用 Swift 开发简单 iOS 待办事项应用的步骤。首先,阐述了 iOS 开发的吸引力及 Swift 语言的优势。接着,详细说明了应用的需求和设计,包括添加、查看和删除待办事项的功能。开发步骤包括创建项目、界面搭建、数据存储、功能实现,并提供了相关代码示例。最后,强调了实际开发中需注意的细节和优化,旨在帮助初学者掌握 Swift 和 iOS 开发基础。
|
4天前
|
搜索推荐 API iOS开发
利用SwiftUI构建动态iOS天气应用
【4月更文挑战第23天】 在本文中,我们将探讨如何使用SwiftUI框架实现一个动态的iOS天气应用程序。将重点介绍如何通过集成第三方天气API、设计响应式用户界面以及应用数据绑定技术来增强用户体验。我们的目标是创建一个能够根据当前位置实时更新天气信息的应用,并确保其界面简洁、易用且美观。
18 0