热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS7中的新鲜事儿:开发人员需要关注哪些重点

面貌一新的UI、动态字体、新的多任务模式以及对新型64位 应用(及设备)的支持。由于新变化太多,我们姑且将注意力集中在那些从长 远角度看影响最显著的特性身上。内容为王让

面貌一新的UI、动态字体、新的多任务模式以及对新型64位 应用(及设备)的支持。

由于新变化太多,我们姑且将注意力集中在那些从长 远角度看影响最显著的特性身上。

内容为王

让我们先从UI说起。简单来讲,iOS 7摒弃了大部分 广泛存在于iOS 6当中的界面元素——例如按钮边框、 用于渲染导航栏的色彩渐变以及不透明标签等等。在 iOS 7当中,大部分UI控制元素都不再使用边框并采 用半透明效果。警示与对话框现在会以显示面板方式提 供选项字符、而不再像早期版本那样使用闪烁的按钮或 者控制效果。新界面初看起来往往让人感到不太适应, 但它非常简洁、而且看久了之后其实也很顺眼。相对于 过去那种在一片漆黑的背景上显示UI元素块的作法, 新版本为我们带来更明亮、更为开放且非常干净整洁的 操作空间。

苹果在新方案中带来精妙的平衡效果。尽管UI元素的显 示方式发生了变化,但其使用方式以及手势操作与早期 版本相比并无不同。举例来说,在列表单元中由右向左 横扫仍然会激活删除或者选项面板。在适应了刚刚上手 所面临的抵触之感后,大家很快就能调整状态并继续投入正常使用——毕竟其操作方式仍然延续经典方案。

苹果公司在iOS 7 与Xcode 5当中进行的扩展可 谓一阴一阳。在Xcode 5 IDE当中,UI几乎没有 作出任何变动,所有重大改进都针对同一套界面 之下的实际工具。但在iOS 7方面,UI的变化之 大令人意外。为了支持这一巨大转变,Cocoa Touch对一部分框架进行了调整、同时引入了其它 新型框架。

在今天的文章中,我们将共同了解iOS 7所带来的 全新调整。

大家可千万别小看其实现难度——各位可以问问那些升级 到Windows 8的用户,问问他们不考虑操作延续性以及 关键性控制方式的系统设计到底会给用户带来多少痛苦 回忆。

为什么苹果要冒这么大的风险将UI推倒重做?其目的 在于为应用程序开发者提供更多可资利用的屏幕空间。 现在按钮、标签、导航栏以及其它控件都以半透明状态显示,这就使得屏幕能够显示更多内容。就连 位于屏幕顶端、用于显示信号强度及电池电量的 状态栏也是半透明的。单凭这一项改动,开发人 员就获得了额外的64像素(纵向模式)或者52 像素(横向模式)可资利用。

为了完全利用这一改动带来的显示面积提升, Cocoa Touch中的UIControllerView类(作为应 用程序屏幕显示与用户界面的核心)现在额外提供 全屏显示模式。在早期版本中,UIControllerView 只能使用一部分屏幕尺寸,状态栏、导航栏以及标 签所占据的部分都被浪费掉了。但现在该类迎来一 系列新属性,允许视图窗口使用传统iOS 6显示方 案或者直接将布局扩展到整个屏幕的边缘。另外, 大家也可以根据需要将视图窗口向特定方向—— 即向顶部或者右侧扩展。

这种倾向于内容的重点转移对开发人员而言意义 重大。Retina显示方案下那些原本只能用于显示 UI控件的像素现在也可以负责显示实际内容。换 句话来说,从设计角度看内容与控件(例如导航 栏)之间的界线已经逐渐模糊。不过这也要求我 们为用户提供更大的显示画面,这样他们才能更 轻松地在大量信息之间进行屏幕切换——即使屏 幕本身尺寸较小。

为了排布应用程序的UI元素,苹果提醒开发人员应该尽可能使用Xcode的自动布局功能——也就是 让iOS负责处理屏幕上UI元素的定位工作。这意味 着未来大家将开始在不同屏幕尺寸上体验iOS平台。

我们拥有多种风格类型可供选择,它们与HTML标签中 的方案基本相同:Headline 1、Headline 2、 Subheadline 1、Subheadline 2、Body、Footnote、 Caption 1以及Caption 2。在必要的情况下,大家也 可以调整字体的尺寸与间隔,当然仍然可以通过描述实 现而非指实际数字。新版本iOS对动态字体、连写、突 出以及可访问字体尺寸的支持在整个系统环境当中皆可 生效。

新框架TextKit专门负责动态字体功能。这是一种高层 级文本布局API,位于低层级CoreText文本布局引擎 之上。所有与文本相关的UI元素(例如UILabel、 UITextField以及UITextView)现在都能通过TextKit 进行文本布局管理。TextKit还可以非常简便地排布段 落、列以及页中的风格化文本。对于图片与文本相结合 的复杂布局环境,大家也可以利用一条贝塞尔曲线勾勒 图片轮廓。TextKit会在排布文本的同时避免其与曲线 发生重叠。这项功能对于复杂内容交付的支持大有帮助。

更出色的多任务机制

准确地讲,iOS从诞生之日起就一直是一款成熟的多任 务操作系统。作为核心,iOS所使用的是与桌面系统OS X相同的Mach内核以及BSD库。邮件、音乐以及时钟等 特定应用都会在后台保持运行。不过苹果严格限制第三 方应用使用多任务功能——这主要是出于安全考量,而 且早期硬件在处理性能、内存以及电池寿命等方面的孱 弱也制约了多任务的普及。

与iOS 6(左图)相比, iOS 7(右图)的对话框 更简洁、不废话。

保证文本清晰易读

苹果还提供了另一种使用这些额外屏幕像素的方式 ——支持更好的字体排列方案。iOS 7采用动态字 体方案:字型能够针对不同显示尺寸进行调整且始 终保持同样的其字体与粗细。现在大家无需指定尺 寸或者字体类型,只需简单为其设定一种风格、iOS 就会处理其它细节。

在iOS 4当中,苹果正式推出限制性多任务机制,旨在支 持应用程序实现后台音频播放、后台位置追踪以及消息推 送等。在iOS 7当中,我们再次迎来更多新型后台模式: 后台获取、远程通知以及后台转换。提供新模式的目的在 于保证应用程序数据始终可用——包括由远程服务器所提 供的数据在内。

后台获取允许应用程序周期性获取信息。为了实际这一目 标,大家需要调用UIApplication方法以通知iOS按固定 间隔获取数据。根据设置好的间隔时间,iOS会周期性启 动应用程序。在启动之后,大家的应用就会调用一项获取 代表方法,并在数据获取完成后自动退出。

远程通知允许大家的应用响应来自服务 器的推送信息。iOS会在通知送达时启 动应用,该应用接下来会与服务器连接、 收集负载内容而后自动退出。

后台转换机制会启动应用程序以实现大 规模数据转换任务。大家的应用会在启 动后利用代表方法与服务器之间发起会 话。该代表负责处理与服务器之间的验 证过程以及转换所带来的各类操作。

显著改进

iOS 7 在多个方面都实现了跨越式发展。新 的UI为开发人员提供更多可资利用的屏幕 空间,这一点对于小尺寸设备尤为重要。更 为智能的文本布局能够带来新的出版及阅读 器应用类型,对此我可以肯定。

这种倾向于内容 的重点转移对开 发人员而言意义 重大。Retina 显示方案下的那 些原本只能用于 显示用户界面控 件的像素现在也 可以负责显示实 际内容。

对于这三种多任务机制来说,应用程序必 须调用完整的处理功能,从而向iOS报告 获取操作成功与否。如果操作未能成功, iOS稍后会重新启动应用并再次深度获取 或者转换。

更多值得关注的新特性

iOS 7 是第一款64位移动操作系统,其中的操作 算法、指针以及指令访问全部采用64位机制。顺 理成章,Xcode 5也可以生成64位代码以支持这 一特性。在大多数情况下,数据通道越多、应用 程序的性能表现就越好;不过数值与指针的增长 同样也会占用更多内存。即使将应用程序转为64 位能够带来诸多好处,大家仍然需要谨慎对待这 一转变;否则,内存经受的额外压力很可能让应 用程序的执行速度变得缓慢不堪。

iOS 7 支持32位与64位两种执行模式,因此 旧有应用程序仍然能够正常运行。我的旧版本 iOS仍然可以管理由iTunes发布的、能够在iOS 7上运行的应用程序,不过界面上方会出现一小 块空白区域——因为新版本提供的可用状态栏空 间在旧版本中无法生效。有鉴于此,开发人员显 然需要将自己的应用程序打造为一套“结合库”, 好同时包含32位与64位代码。这样一来,即使 是在早期iOS版本当中我们的应用也能顺利执行。 这套结合库机制应该能够正常起效,因为苹果之前 就已经实现过这类方案。当初Mac计算机由Power 架构向英特尔CPU过渡时,Xcode工具就通过“ 通用库”同时囊括了Power架构与英特尔代码镜像。 如果大家从事这一行的时间够长,可能还赶上过 Mac设备由68K向Power架构CPU转换的过程, 当时开发人员可以让“fat binaries”同时运行在 两套平台上。

这款64位操作系统提供更出色的计算性能 表现,从而帮助开发人员利用更为强大的语 音算法与信号处理能力,最终让目前对移动 平台计算能力还太过勉强的应用性能需求得 以实现。简而言之,苹果将借此为现有客户 群体带来业界一流的软件产品。

这不禁让我再次想起iOS 7与Xcode 5之间 阴阳并济、水火交融的协作关系。苹果将iOS 7定位为 桌面级别的操作系统——考虑到其卓越的排版机制与强 大的计算能力,大家应该能够认同这一观点。此外,我 们还需要思考iOS如何帮助企业在移动领域走得更远。 下面我们不妨遵循几条线索。苹果已经在Xcode 5当中 大力推行自动布局功能,因此大家可以想到将有更多屏 幕尺寸有所差异的“i设备”走向市场。会不会出现屏 幕更大的平板甚至采用iOS系统的笔记本电脑?或者是 允许iPhone及iPad使用苹果全尺寸显示器与键盘的“ iDock”方案?iOS与OS X的发展方向似乎正一步步走 向交汇,因此这三种可能性最终都有机会变成现实。 不过在不久的将来,我认为iOS 7会帮助苹果进军特定 垂直市场或者推出几款新设备。简言之,iOS 7与 Xcode之间的阴阳关系将推动移动平台从竞争激烈的消 费级市场当中脱颖而出——而其最后的成就则要看开发 人员能在这样理想的基础之上打造出怎样的成果。


推荐阅读
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
mobiledu2502887783
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有