ios9苹果9.0系统搜索界面的搜索 怎么样设计

45 个 iOS 9 实用技巧汇总,总有你不知道的 - 少数派
45 个 iOS 9 实用技巧汇总,总有你不知道的
45 个 iOS 9 实用技巧汇总,总有你不知道的
iOS 9 发布后三天更新率就已超过 50%,关于 iOS 9,少数派近期已经先后发布了若干篇相关实用教程文章,介绍了许多个 iOS 9 使用技巧,我们希望通过这些内容,帮助大家更快、更好地上手新系统,把手里 iOS 设备的能力尽可能发挥出来。
关于 iOS 9 技巧,少数派此前的文章回顾:
而这篇文章你可以看作是一个简化版的汇总,但其中也有一些新的技巧,比如下面的第一条,相信有 90% 的人还不知道。所以,你可以快速浏览本文当作查漏补缺,如果其中有那么几条你还不知道的技巧,那么这篇文章的目的也就达到了。
最后,欢迎在看完文章后,在评论与我们分享你最喜欢的几条技巧。
1. 屏幕翻转朝下时,自动锁屏并通知静音
当你的 iPhone 面朝下放置在桌上时,iOS 9 将检测到设备状态,在 3~5 秒后会自动熄屏并锁定设备。另外在此状态下,你的 iPhone 收到的推送通知将不会有提醒音,当然打进来的电话除外。
2. 信息搜索:高亮气泡显示
在「信息」应用程序中快速定位需要搜索的关键字。当你键入关键词后,按下「搜索」按钮,将直接跳转至该关键字所在气泡,并将该气泡高亮出来。
3. 搜索第三方应用中的内容
在 iOS 9 的 Spotlight 中,你可以直接搜索第三方应用程序中的内容了。比如搜索 Dropbox 中的某一个文件,并且无需先主动打开对应的应用程序。
4. Spotlight 左滑回归
除了从主屏下拉呼出 Spotlight,现在怀旧党可以欢呼了——在主屏界面左滑亦可以呼出 Spotlight。
5. Spotlight 中使用 Siri
受够了打字的「哒哒哒」?现在你可以直接使用 Siri 语音讲出你的搜索关键词了。
6. 低电量模式
iPhone 用户没有谁不关心电量消耗的。iOS 9 推出了「低电量模式」,一旦开启,将降低 CPU 的频率,关闭一些视觉效果等,从而达到延长使用时常的目的。
7. Hey Siri 只认得你
iPhone 6s 和 iPhone 6s Plus 硬件支持使得「Hey Siri」命令能够随时触发,而无需接入电源。Hey Siri 训练能够使得你的 Siri 只「认得」你的嗓音,从而避免了他人说出「Hey Siri」唤醒一堆 iPhone Siri 的尴尬场景。
8. 深度链接
在 iOS 中点击某一个链接,将优先查找你的 iPhone 上是否已经装有相关应用程序,若果已安装,则会直接跳转至该应用程序中,而不是像之前那样一律跳转至网页。
9. 快捷返回上一应用
应用程序之间的「返回」操作变得非常方便,在屏幕的左上角直接植入了「返回至…」的快捷方式,省去了平凡开启应用程序切换器的时间。
10. 闹钟左滑删除
在「闹钟」应用程序中,以前需要点按「编辑」才能删除一个闹钟,现在可以直接「左滑来删除」手势了。
11. 保存网页为 PDF
通过 iOS 9 分享菜单中 iBooks 的「保存为 PDF」选项,你可以将当前网页保存为 PDF 文档至 iBooks 应用程序内,保存完毕后自动开启,非常方便。
12. 请求桌面版本网页
iOS 8 引入的这一特性操作藏的有点深,所以在 iOS 9 中变得简单直观了许多:按住地址栏右侧的刷新按钮不放,然后选择底端弹出的「请求桌面版」选项。
13. 全新的应用程序切换视图
iOS 7 伊始,应用程序切换视图采用预览选项卡的形式,而苹果再一次在 iOS 9 中大胆改革了应用切换界面,有人觉得好看,有人说不好用,但至少更直观了。
14. 更明显的 Handoff 标识
在应用程序切换视图中,以往的 Handoff 选项卡藏在了主屏幕预览选项卡的左边一页(并没有那么容易被发现)。iOS 9 直接将其置于切换视图的底端,向上拉取或者是轻按一下均可以立即跳转。
15. 用 Spotlight 做计算
iOS 9 的 Spotlight 开始向 OS X 平台的 Spotlight 靠拢了。简单的数学问题现在已然无需开启「计算器」应用程序了。
16. Spotlight 转换汇率
你现在可以直接在 Spotlight 中进行汇率转换啦,非常便利的实用功能。
17. Spotlight 联系人入口
iOS 8 曾将联系人的「个人收藏」和「最近联系人」置入应用程序切换视图界面,但是显然还有更优选择:现在你可以直接在 Spotlight 视图内访问某联系人啦,而且 iOS 9 还会根据你的联系频率给你推荐某些联系人。
18. 改版的播客应用
重新设计过的「播客」应用程序应该会让你耳目一新,其界面和预装的「音乐」应用程序基本上保持一致,取消了一些之前版本藏的很深的小设置。
19. 强大的备忘录应用
iOS 9 的「备忘录」更新异常给力,你可以添加复选框至文本,你可以随手涂画,你还可以随意调整画笔色彩,直线曲线随意来,你的备忘录你做主。
20. 智能相册识别
iOS 在「照片」应用程序中内置了智能相册,如「自拍」「屏幕快照」等,而且贴心地加上了 logo 方便分别。
21. Siri 变得更安静(仅 iPhone)
iPhone 上的 Siri 在唤出时已经没有了「Ding-Ding」的声音,然而 iPad 上依旧存在。
22. 通知中心电量显示小部件
iOS 9 在通知中心内置了一款查看电量的小部件,如果你有 Apple Watch 和其他蓝牙设备连接到 iPhone,在通知中心即可一眼瞥见它们的剩余电量。
23. 第三方应用快捷回复
快捷回复免去了你进入某个应用内才能回复的操作,现在不少第三方应用已经开始支持快捷回复啦,比如 、,着实方便,期待微信也能早日支持这一特性。
24. 要求 Siri 提醒当前状态
看网页看到一半需要撒手?没关系,让 Siri 来稍后提醒你吧。和 Siri 说「提醒我这个网页」,Siri 将生成一个提醒事项来稍后提醒你。
25. 新的文件夹图标分布(iPad)
iOS 9 的 iPad 文件夹陈列变为 4x4 分布,也就是说一页能够容纳 16 款应用程序了。
26. 侧滑互动其他应用(iPad)
在 iPad 屏幕边缘滑动即可呼出其他应用程序来进行并排同时操作。
27. iPad 分屏功能
只有内存为 2GB 的 iPad 才支持这一功能,iPad 的屏幕并排显示两个同等大小的应用程序,可以提升多任务同时进行的效率。
28. iPad「画中画」功能
现在你可以将正播放的视频「剥离」开来使之悬浮在最前端,你可以轻松调整其显示窗口大小,在屏幕上的位置等。一边看视频一边操作其它事情,两不误。
29. iPad 通知中心分为两栏
在 iPad 横屏模式下,通知中心被分为左右两栏,左边显示通知小部件,右边显示推送的通知,充分利用了 iPad 的屏幕空间。
30. iPad 键盘变身触控板模式
在 iPad 输入键盘上使用两根手指滑动即可快速调整光标位置,还可以进一步选择文本段落等。
31. 外接键盘的快捷操作
如果你使用外接蓝牙键盘连接到 iPad 的话,你就可以使用非常多的快捷键来操作了,暂且把 iPad 当作一台 Mac 吧,按下 Command 键的同时还会提示你一些可用的快捷键组合列表。
32. iCloud Drive 独立应用
iCloud Drive 终于独立出来了。你可以前往「设置 - iCloud - iCloud Drive」开启「在主屏幕上显示」选项即可。
33. 邮件中标记(Markup)照片
在邮件中添加照片时,你可以直接对其进行润饰,正如 OS X 邮件客户端中的 Markup 功能一样,你可以添加图形,放大镜等标记特效至照片而无需离开「邮件」应用程序。
34. 随意添加/存储邮件附件
现在有了 iCloud Drive 文件结构作为支撑,添加附件的范围可谓是大了很多,几乎所有类型的文件,你都可以从 iCloud Drive 调用或者是从其中添加。
35. 优化的邮件搜索
搜索邮件时,你现在可以借助于附件名称等更多的关键字来搜索啦。
36. 复杂的锁屏密码
iOS 9 中默认锁屏密码的长度增至 6 位。
37. Wi-Fi 助理
当你的 Wi-Fi 信号不咋地的时候,iOS 将自动切换至蜂窝网络(各位需要注意流量套餐上限)。
38. 粘贴跳转/搜索
每次都要在地址栏先选择,然后粘贴后才能跳转?iOS 9 说不需要这样,直接在地址栏部分按住不放,你就可以使用浮出的「粘贴并前往」选项直接跳转,进一步提升效率。
39. 丢失模式自动启用省电模式
现在当你在 Find My iPhone 启用 iOS 设备的丢失模式时,将会自动在锁定丢失的设备上启用低电量模式。
40. 搜索设置选项
没错,「设置」应用程序中也支持关键词搜索了。你可以直接搜索特定关键字实现迅速定位某些服务设置项的功能。
41. 键盘显示当前输入的大小写
不知道当前输入的字母大小写?iOS 9 默认在键盘上显示当前的输入大小写状态,实时的哟。
42. 关掉键盘输入的 Pop-up 字符预览
你担心输入密码的时候被别人看见按键的 Pop-up 的字符气泡?好了你现在可以直接关闭输入时候的「字符预览」项啦。
43. 使用 Touch ID 访问已保存的密码
以前在进入「设置」-「Safari」-「密码」部分时,需要手动输入锁屏密码,但是现在你可以直接使用 Touch ID 验证自己的身份啦。
44. 搜索 Safari 已保存的密码
接上一条,在进入保存的密码部分后,如果你想快速定位某项服务的密码,直接在顶部的搜索框内键入关键字即可。
45. 优化的电池使用信息
iOS 8 可以查看「过去的 24 小时」和「最近 7 天」的用电量,iOS 9 能进一步知晓这些应用程序在「前台」和「后台」工作了多长时间。
以上就是我最近搜集的关于 iOS 9 的 45 个新特性,但还有待继续挖掘。希望看完这篇分享,你对 iOS 9 的认识能够进一步加深,祝各位用得开心!
本文部分内容参考自:
阅读更多关于 iOS 9 的文章:
分享到微信
iBooks 指南图书《LET'S TALK iPHONE》、《LET'S TALK ?WATCH》作者;少数派撰稿人;爱啃苹果。
Email 登录
商务&合作:
投稿&报道:
微信订阅二维码义项指多义词的不同概念,如的义项:网球运动员、歌手等;的义项:冯小刚执导电影、江苏卫视交友节目等。
是于日正式推出的移动操作系统。 比iOS8更稳定,功能更全面,而且还更加开放。iOS 9加入了更多的新功能,包括更加智能的Siri,新加入的省电模式。iOS 9为开发者提供5000个全新的API。 日,苹果正式推送了iOS 9.2,更新内容相当之多,修复改善稳定性自然不必多说,还增加了很多新功能,比如邮件增加了Mail Drop功能可以发送大附件、开始支持3D Touch、Apple News新闻中的&热门报道&等等。
外文名称 iOS 9
开发商 Apple Inc.
首次公开日期 号首次公开日期
内核类型性质 UNX
支持设备 iPhone、iPad、iPod Touch
最新内测版本 9.0 beta5
最新公测版本 9.0 Public beta3
发布时间 日
虽然刚刚推送,用户朋友们还没有能好好体验这个新的操作系统,概念设计师就已经迫不及待地想象了iOS 9。iOS 9中将有一个新的 Widget Store 小工具商店,这样用户就可购买需要的小工具,方便在通知中心快速查看消息。用户也可以通过控制中心来使用小工具。另外用户可以通过控制中心来搜索,搜索结果可包括来自维基百科或者内置字典中的内容。多任务模式也有新的动画效果。在屏幕上用户长按应用图标,即可调出应用的大小等应用信息,还会提供应用开发者网页的链接等。
北京时间日凌晨,在苹果2015 WWDC开发者大会上,苹果正式推出了新版本的移动操作系统iOS 9。苹果表示,iOS 9 是被彻底重新设计的系统,从整个系统的最底层开始进行了全面提升,变得更为智能,它优化了你常用的各种 app,与 iPad 的整合也将更为完善。iOS 9的支持度如下:设备支持度iPad1不支持iPad2支持,但较卡The New iPad/iPad4支持,一般iPad Air/iPad Air 2支持,很流畅iPhone4不支持iPhone4s支持,但较卡iPhone5/5c/5s支持,一般iPhone6/6Plus支持,很流畅iPod touch 4不支持iPod touch 5支持,但较卡
备忘录在iOS 9中可以轻松制作待办事项的核对清单,加入照片、地图或网址链接,甚至随手画个草图。
地图的 "公交" 视图,为你提供附带路线和方向指示的公共交通信息,当你在地图中进行搜索时,会看到包括餐饮、购物和娱乐等类别的列表。你可以逐项查看这些分类,了解周围都有哪些好去处。
iCloudDrive
全新 iCloud Drive app 内置于 iOS 9 中,让你能直接从主屏幕上,便捷访问 iCloud 里存储的任何文件。你可以在这个 app 中轻松搜索,从而找到想要的文件;可以按日期、名称或添加到 Mac 上的任何标签来浏览全部文件;还可以在这个 app 里预览和整理文件。
iOS 9 为邮件带来了全新的强大功能,因此,你可以在 iOS 设备上做到更多,甚至再随手来点创意。你可以使用标记功能来为附件中的照片和文件添加图画、评论或签名,还可以轻松将 iCloud Drive 中保存的文件添加为附件。
多任务处理
在iOS 9,你不必离开正在使用的 app,便可以打开另一个 app。这样,你就能快速浏览网页,回复文本信息,或是随手记下一条备忘,然后将它们滑向一边,回到之前使用的 app 中。
让 Siri 按日期、位置和相簿名称来搜索你的照片和视频,如果你正在查看Safari、邮件或备忘录等 app 中的内容,并且希望稍后继续,Siri 可以提醒你,你的搜索屏幕现已预先推荐了联系人、app、附近的地点等内容。此外,它方方面面都更加主动,让许多小事变得更轻松便捷。
画中画功能
用户在看视频过程中如果想看或回邮件,视频将以悬浮窗口的形式保留在屏幕上,大小和位置可任意调整。
全新的快捷工具栏、一系列便捷的编辑工具、一种以Multi-Touch手势选取文本的便利新方式。配备无线键盘时也能享用更多键盘快捷键。
WiFi助手 
在数据流量菜单加入了名为“WiFi助手”的功能,让iPhone、iPad可以在无线网络较弱的情况下自动切换至
情景模式:功能机时代随处可见,如今却找不到了,不同的铃声、音量、开关都只能单独切换。虽然其实也挺方便,但如果能够一键进入会议模式、室外模式等,相信还是会很受欢迎的。音乐应用:OS X里的很多特性如果能移植过来就好了,比如说不同的播放顺序而不只是一个播放列表。很多人认为,的音乐播放器功能单一,重新设计的空间很大。多用户登陆:特别是有了指纹识别之后,不同人使用同一款iOS设备的时候,可以登陆进入自己的环境,有自己的设置、应用,彼此互不干扰。控制中心:太多人都想在这里自定义开关了,甚至有人想用自己喜欢的应用替换掉其中默认的(手电筒、计算器、时钟和摄像头),为此到处寻找第三方工具。F.lux:这是一款上的自动调节色温软件,可根据当地日照时间改变屏幕温度,保护眼睛。游戏中心:本来说要去掉的,但这个鸡肋依然留了下来。苹果要么就把它拿走,要么就改造成Steam那样的。XCode for iOS:这个是开发者和极客们想要的。自由排列图标:的桌面图标必须行列整齐地排列在一起,不能留空,这就不如Android自由了。桌面小部件:又是一个Android上很爽的地方,苹果会做吗?针对iPad重新设计:不得不说,iOS在大屏幕、高分辨率下需要做的地方还有很多,尤其是多窗口支持,不能老是放大了就完事了。更多改进:很多现有功能其实都可以进一步完善,就看苹果想不想了,比如说:更好的SHIFT键、系统级别的夜晚模式、真正的多任务、隐藏乃至删除预装应用、原生支持GIF。iOS 9系统下的浏览器将会首次支持屏蔽广告的功能。系统大小iOS9系统占用空间相比iOS8大幅减少。游戏性能iOS9新增了GameplayKit、ReplayKit和Model I/O功能,全方位的提高了iOS的游戏性能。应用瘦身iOS 9的App Thinning对iOS应用安装进行优化,尽可能的减少占用空间。App Store会自动将所需应用切片成“应用变体”,根据用户所使用的设备下载仅需的文件版本,仅下载当前对应设备的“应用变体”,这样能够大大减少下载时间和占用空间。
iOS 9和9.0.1将能够在所有兼容的设备上运行。设备清单:iPhone 6s Plus、iPhone6s、iPhone 6 Plus、iPhone6、iPhone5s、iPhone5c、iPhone5、iPhone4s;、iPod touch 6;iPad 2、iPad 3、、、、、、、、。
在电脑上升级
用将iOS设备连接到电脑,手动下载 iOS 9 ,并运行 ,按住 Shift,同时点击“恢复”,选择对应版本的 iOS 9 固件进行更新即可。
在设备上升级
苹果已推送ios9到部分设备。点击设置--通用--软件更新来更新。
据科技博客Appleworld报道,苹果于日发布了其最新iOS 9移动操作系统,市场调研机构Mixpanel提供的最新数据显示,在不到24小时内,iOS 9系统的采用率逼近12%,超出了iOS 8系统的首日采用率。
苹果ios9被吐槽三大bug
苹果最近被吐槽的特别多,先是他们的新产品iphone6s,现在ios9有爆出三大bug。除了iMessage通联失败、通知中心和电子邮件的已存在问题,iOS 9.0.2的bug修复补丁又产生了更多的问题。苹果官方支持论坛已经淹没在了网友的声讨声中。新问题一:触屏故障。iOS
9.0.2造成的最大问题是会让iPhone和iPad的触摸屏无法正常工作。新问题二:游戏中心挂掉了。虽然苹果的游戏中心并没有多么热门,但它仍然是
所有iOS社交游戏的门户。受影响的用户发现,游戏中心无法被加载。新问题三:无法安装应用程序。在苹果论坛中,现在已经有超过25万的跟帖表示,应用在
进行安装/更新时会死机。尽管你不一定会碰到,但是一旦碰到,iOS的主屏幕就会出现永远无法停止的“安装”界面。看来,随着功能的不断增多,曾经被果粉津津乐道,拿来跟安卓做对比的ios系统也面临着重大的考验。据外媒称,iOS 9.1更新发布的速度将再一次打破记录,但是对于广大果粉来说,我们虽然希望苹果能够更新的勤快一些,但是更希望每一次的更新是稳定的更新。
发售在即iPhone6S预装iOS9.0.1
iPhone 6S、iPhone 6S Plus将于今天正式开售,此前预订的用户也将陆续收到新机,而苹果也很贴心地带来了新的系统iOS 9.0.1。嗯你没记错,iOS 9.0.1昨天就发布了,但那个是支持老机型的,而几天这个是专为新机准备的。iPhone 6S、iPhone 6S Plus首批预装的都是iOS 9.0,所以开箱拿出之后,请按捺住激动的心情,马上开始更新系统,更新之后,你会发现,修复了以下问题
- 部分用户无法完成设置向导- 设定的闹钟和计时器有时无效- Safari、Photos里暂停视频播放,会导致当前帧画面扭曲- 自定义APN可能会丢失蜂窝数据 凌晨发布了.0.1和iOS9.1开发者预览版Beta2相比Beta1,iOS9.1 Beta2更新主要是bug修复和性能提升,版本号从Beta1的13B5110e变为了13B5119e。
苹果官网否认“WiFi助理”偷跑流量
iOS9中苹果新增加的“WiFi助理”功能被一些用户抱怨会偷跑流量,昨天记者了解到,苹果对此作出了解释,称此功能是为了给用户更好的上网体验,因此而增加的流量几乎是可以忽略的。“WiFi助理”功能,就是让用户的设备在WiFi信号较弱的情况下,自动切换到蜂窝移动数据,使用手机流量保证用户流畅的上网体验,当然,这
也势必会带来流量使用的增加。一些用户发现自己的iPhone在升级到iOS9后流量使用比之前更多了,认为就是这个功能在偷跑流量。对此,苹果在官方网站解释道:“当WiFi信号非常弱的情况下持续上网,只有依靠蜂窝网络,这可能会产生更多的流量。但是对于大部分用户来说,这部分流量几乎是可以忽略的。”不过对于一些只愿意在WiFi环境下上网的用户来说,这一功能的确会增加流量的使用情况。实际上,苹果对于这项功能也作出了一些限制,在数据漫游的时候不会开启,只应用于前台应用而不适用于后台下载。当然,用户也可以选择直接关闭这一功能。
{{each(i, video) list}}
{{if list.length > 8}}
查看全部 ${list.length} 期节目
{{if _first}}
内容来源于
{{if list && list.length}}你会用iOS9设置中的搜索框吗
来源:爱思助手
浏览次数:3007
在iOS的每一个应用里都包含着很多设置,当你要改变某个应用的某个设置或者是系统设置的时候,你就需要从“拥挤”的设置中找到需要改动的那一个,这种体验并不是太好。iOS9还处于测试版阶段,但它已经提供了一个新的解决办法,那就是搜索。在iOS9中进入设置应用并确保你在设置的首屏,在这里你可以看到飞行模式、Wi-Fi、蓝牙和蜂窝数据等项目。在这些选项的顶部你可以看到一个设置框,在这里你可以输入关键词来搜索相关设置。例如输入“键”字,就可能会出现通用中的“键盘”,通用-辅助功能中的“键盘”,又或者是声音当中的“键盘敲击声”。该搜索框可以让你直达这些对应设置的界面。该搜索框可以极大地简化用户的查找步骤,只需输入对应的关键词就可以直达该设置的具体位置,所以用好iOS9设置中的搜索框能够大幅度地提升搜索效率。iOS 9学习系列:Search API
招聘信息:
本文由译者YueWang翻译自Tuts+原文:介绍在WWDC 2015会议上,苹果官方公布了iOS9。除开许多新的特性和增强功能,这次升级也给了开发者们一个机会让他们的app里的内容能通过Spotlight搜索功能被发现和使用。在iOS9中可用的新APIs允许你去索引APP里面的内容或者界面状态,通过Spotlight来让用户使用。 这些新的搜索APIs的三大组件为:NSUserActivity 类, 它是为可被看见的APP内容而设计的Core Spotlight 框架, 为任何APP内容而设计的 web markup,为这一类型的APP设计的,就是APP的内容在某个网站上有镜像在这个教程里,我将会向你展示可以怎样在你的应用中使用NSUserActivity类以及 Core Spotlight 框架。准备工作这个教程需要你运行在Xcode7 和OSX 10.10系统或更后的系统。为了紧跟我的步伐,还需要你去上下载初始工程。1.使用 NSUserActivity在这个教程的开始部分,我将会给你展示怎样通过NSUserActivity类来索引一个APP里的内容。这个API也是在Handoff里使用的那一个,handoff是在去年iOS8中介绍的功能,它用于保存和复原一个应用的当前状态。如果你之前没有使用过NSUserActivity,那么我建议你在开始这个教程之前先阅读我的 ,它覆盖了Handoff和NSUserActivity的基础内容。在开始写代码之前,打开,然后在iOS模拟器上或者测试机上运行APP。在这个阶段,你会看到这个APP简单地展示了一个有着4个TV节目的列表,以及每个节目的详细页面。首先,打开工程然后到DetailViewController.swift文件。把DetailViewController类里configureView方法里的内容替换为如下:func&configureView()&{
&&&&//&Update&the&user&interface&for&the&detail&item.
&&&&if&self.nameLabel&!=&nil&&&&self.detailItem&!=&nil&{
&&&&&&&&self.nameLabel.text&=&detailItem.name
&&&&&&&&self.genreLabel.text&=&detailItem.genre
&&&&&&&&let&dateFormatter&=&NSDateFormatter()
&&&&&&&&dateFormatter.timeStyle&=&.ShortStyle
&&&&&&&&self.timeLabel.text&=&dateFormatter.stringFromDate(detailItem.time)
&&&&&&&&let&activity&=&NSUserActivity(activityType:&"com.tutsplus.iOS-9-Search.displayShow")
&&&&&&&&activity.userInfo&=&["name":&detailItem.name,&"genre":&detailItem.genre,&"time":&detailItem.time]
&&&&&&&&activity.title&=&detailItem.name
&&&&&&&&var&keywords&=&ponentsSeparatedByString("&")
&&&&&&&&keywords.append(detailItem.genre)
&&&&&&&&activity.keywords&=&Set(keywords)
&&&&&&&&activity.eligibleForHandoff&=&false
&&&&&&&&activity.eligibleForSearch&=&true
&&&&&&&&//activity.eligibleForPublicIndexing&=&true
&&&&&&&&//activity.expirationDate&=&NSDate()
&&&&&&&&activity.becomeCurrent()
}在view controller里,配置label的代码是不变的,让我们来一步一步分析 user activity 代码:使用唯一标识符 com.tutsplus.iOS-9-Search.displayShow创建一个新的NSUserActivity对象。 这个工程已经被配置成确保使用这个标识符时要保证它不会被改变。然后为这个user activity 分配一个userInfo字典。它将会在后面被用来修复应用的状态。给activity的title属性赋予了一个字符串值。这就是将会在Spotlight 搜索结果里出现的内容。为了确保可搜寻的内容不仅止限于应用的标题,你也要提供一系列的关键字。在上面的代码段中,关键字列表中包含了每个节目的名字以及它的类型。接下来,你向NSUserActivity对象赋予一些属性来告诉操作系统你想让这个user activity用来做什么。在这个教程中,我们只是查看搜索组件的API 因此我们把Handoff禁用掉然后把search开启。最后, 调用user activity的becomeCurrent方法,就在此时它自动的被加入到了设备的搜索结果索引中。在以上的实现代码中,你可能注意到了两条被注释的语句。尽管我们不会在这个教程中使用这些属性,但是了解每个属性是做什么用的也是很重要的。在上面的实现代码中,每个节目的user activity和 搜索结果都是仅当应用曾经被打开过时而创建的。当你让你的user activity有eligibleForPublicIndexing属性时,Apple就开始从用户的搜索结果当中观察这个特殊activity的作用和交互了。如果这个搜索结果是被很多用户所使用的,Apple就提升这个user activity到它自己的云索引(cloud index)中。一旦这个user activity在这个云索引中了,它就可以被所有安装过你的应用的人搜索得到,而不管他们是否有打开过那些内容。这个属性只有当且仅当activities能被你应用的所有用户使用时才能被设置为true。一个user activity 可以有一个可选的属性expirationDate。 当这个属性被设置时,你的user activity 只会在设置的时期之前才会展示在搜索结果里。现在你已经知道了怎样创建一个可以在Spotlight中展示搜索结果的NSUserActivity,现在就来实验吧。编译运行你的APP,然后在你的应用中打开一些节目。做完这些后,返回到home页面(在iOS 模拟器中按 Command-Shift-H)然后向下扫或者滑动到最左边的屏幕就可以拉起搜索框视图。在搜索框里填入某个你已经打开了的节目的标题,你将会在搜索结果里看到它被显示出来,如下图。另外的,输入某个你已经打开了的节目的类别。归功于你已经对user activity赋予了关键字信息,这也会导致节目将会在搜索结果列表里被列举出来。你应用的内容被操作系统正确的索引出来并且结果就展现在Spotlight 里。但是,当你轻触一个搜索结果时,你的应用并不会带领用户进入他们想要的搜索结果里面去,而只是简单地拉起这个应用。幸运的是,通过 Handoff, 你可以利用NSUserActivity类来复原应用里的正确状态。为了使这成为可能我们需要实现两个方法。如下所示在AppDelegate类里实现 application(_:continueUserActivity:restorationHandler:) 方法:func&application(application:&UIApplication,&continueUserActivity&userActivity:&NSUserActivity,&restorationHandler:&([AnyObject]?)&->&Void)&->&Bool&{
&&&&let&splitController&=&self.window?.rootViewController&as!&UISplitViewController
&&&&let&navigationController&=&splitController.viewControllers.first&as!&UINavigationController
&&&&navigationController.topViewController?.restoreUserActivityState(userActivity)
&&&&return&true
}接下来,在MasterViewController类里实现restoreUserActivityState方法: override&func&restoreUserActivityState(activity:&NSUserActivity)&{
&&&&if&let&name&=&activity.userInfo?["name"]&as?&String,
&&&&&&&&let&genre&=&activity.userInfo?["genre"]&as?&String,
&&&&&&&&let&time&=&activity.userInfo?["time"]&as?&NSDate&{
&&&&&&&&let&show&=&Show(name:&name,&genre:&genre,&time:&time)
&&&&&&&&self.showToRestore&=&show
&&&&&&&&self.performSegueWithIdentifier("showDetail",&sender:&self)
&&&&else&{
&&&&&&&&let&alert&=&UIAlertController(title:&"Error",&message:&"Error&retrieving&information&from&userInfo:\n\(activity.userInfo)",&preferredStyle:&.Alert)
&&&&&&&&alert.addAction(UIAlertAction(title:&"Dismiss",&style:&.Cancel,&handler:&nil))
&&&&&&&&self.presentViewController(alert,&animated:&true,&completion:&nil)
}在写这篇文章的当下,Xcode7(Beta3)的最新版本有一个问题那就是一个用于修复的user activity的 userInfo 属性会变成空。这就是为什么我会处理errors以及展示一个userInfo(被操作系统返回的)信息的警告。再次编译运行你的APP,搜索一个节目。当你在搜索结果里轻触一个节目时,APP将会直接将你带到详细信息的view controller并展示出你选择的节目的当前信息。2.使用Core Spotlight 框架另外一些在iOS9中能使你的内容可被用户搜索得到的APIs就是Core Spotlight 框架。这个框架有一个类似数据库的设计并且能够给你提供更多的关于你想被搜索到的内容的信息。在你可以使用Core Spotlight框架之前,我们需要把这个工程同这个框架链接起来。在Project Navigator中,选中这个工程然后打开最上面的Build Phases栏目。接下来,展开 Link Binary With Libraries 区域然后点击加号按钮。在弹出的菜单中,搜索 CoreSpotlight 然后把你的工程跟这个框架链接起来。重复这些步奏来链接 MobileCoreServices 框架。接下来,为了确保我们的APP提供的搜索的结果确实来自于Core Spotlight,在你的测试机或者模拟器上删除你的应用然后在DetailViewController类中注释掉下面的这条语句: activity.becomeCurrent()最后,打开MasterViewController.swift然后在Show结构体定义之前添加下面的语句: import&CoreSpotlight&
import&MobileCoreServices接下来,在MasterViewController类的viewDidLoad方法里添加下面的代码:var&searchableItems:&[CSSearchableItem]&=&[]
for&show&in&objects&{
&&&&let&attributeSet&=&CSSearchableItemAttributeSet(itemContentType:&kUTTypeItem&as&String)
&&&&attributeSet.title&=&show.name
&&&&let&dateFormatter&=&NSDateFormatter()
&&&&dateFormatter.timeStyle&=&.ShortStyle
&&&&attributeSet.contentDescription&=&show.genre&+&"\n"&+&dateFormatter.stringFromDate(show.time)
&&&&var&keywords&=&ponentsSeparatedByString("&")
&&&&keywords.append(show.genre)
&&&&attributeSet.keywords&=&keywords
&&&&let&item&=&CSSearchableItem(uniqueIdentifier:&show.name,&domainIdentifier:&"tv-shows",&attributeSet:&attributeSet)
&&&&searchableItems.append(item)
CSSearchableIndex.defaultSearchableIndex().indexSearchableItems(searchableItems)&{&(error)&->&Void&in
&&&&if&error&!=&nil&{
&&&&&&&&print(error?.localizedDescription)
&&&&else&{
&&&&&&&&//&Items&were&indexed&successfully
}在验证这段代码之前,我们先过一遍for循环里的每一步。你创建一个 CSSearchableItemAttributeSet 对象, 给这个项目传入一个内容类型(content type)。例如,如果你的搜索结果链接到一张照片,那么你就应该传入kUTTypeImage常量。 给属性组合(attribute set)的title属性赋予一个节目的名字。就如同 NSUserActivity一样,这个标题就是将在搜索结果列表的最顶端出现的那个。 接下来,创建一个描述性字符串然后把它赋值给可搜索的属性组合(attribute set)的contentDescription属性。这个字符串将会在Spotlight中搜索结果的标题下方出现。 就像在NSUserActivity当中创建的那样,创建一个来自于搜索结果的关键字数组。 最后,创建一个有着唯一项目标识符的,唯一域标识符(用来聚集CSSearchableItem项目)的,和一个属性组合(attribute set)的CSSearchableItem,与NSUserActivity不同的是, NSUserActivity 从搜索结果中返回user activity, 当你的搜索结果被用户选中时,为CSSearchableItem设置的所有唯一标识符信息就是你可以从操作系统那里得到的唯一信息。 你需要利用这些标识符来复原你的应用回到正确状态。一旦你为每个TV节目创建了一个CSSearchableItem项目时,你利用 indexSearchableItems(_:completionHandler:) 方法和默认的CSSearchableIndex对象来索引它们。编译运行你的APP,你所有的节目将会被Spotlight索引到。去到搜索页面然后搜索其中一个节目。Core Spotlight搜索结果会被跟NSUserActivity里一样的那个方法所处理,但是过程有一些轻微区别。当一个CSSearchableItem项目在搜索结果里被选中时,系统为你创建一个包含选中项目的唯一标识符信息的NSUserActivity对象。在你的 app delegate的 application(_:continueUserActivity:restorationHandler:)方法中,可以利用下面的实现代码从Core Spotlight 搜索结果中获取你要的信息:if&userActivity.activityType&==&CSSearchableItemActionType&{
&&&&if&let&identifier&=&userActivity.userInfo?[CSSearchableItemActivityIdentifier]&as?&String&{
&&&&&&&&//&&Use&identifier&to&display&the&correct&content&for&this&search&result
&&&&&&&&return&true
}使用Core Spotlight框架来索引APP内容的一个良好的实践就是当项目不再被需要的时候删除它们。CSSearchableIndex类提供了三种方法来删除可搜索项目: deleteAllSearchableItemsWithCompletionHandler(:)?deleteSearchableItemsWithDomainIdentifiers(:completionHandler:)?deleteSearchableItemsWithIdentifiers(_:completionHandler:)作为一个示例,添加下面代码到MasterViewController类里的viewDidLoad方法:CSSearchableIndex.defaultSearchableIndex().deleteSearchableItemsWithDomainIdentifiers(["tv-shows"])&{&(error)&->&Void&in
&&&&if&error&!=&nil&{
&&&&&&&&print(error?.localizedDescription)
&&&&else&{
&&&&&&&&//&Items&were&deleted&successfully
}再一次的编译运行你的应用。当你想要搜索任何节目时,不会有任何结果返回回来,因为它们已经在索引当中被删除掉了。3.联合NSUserActivity和 Core Spotlight另一个在iOS9中NSUserActivity类的新增特性就是contentAttributeSet属性。这个属性允许你赋予一个CSSearchableItemAttributeSet, 正如你先前创建的那个。这个属性集合(attribute set)允许NSUserActivity对象的搜索结果可以展示如同 Core Spotlight搜索结果那样的相同数量的详细信息。首先向DetailViewController.swift中最顶部添加下面的imports: import&CoreSpotlight&
import&MobileCoreServices接下来,用下面的实现代码更新DetailViewController类的configureView方法:func&configureView()&{
&&&&//&Update&the&user&interface&for&the&detail&item.
&&&&if&self.nameLabel&!=&nil&&&&self.detailItem&!=&nil&{
&&&&&&&&self.nameLabel.text&=&detailItem.name
&&&&&&&&self.genreLabel.text&=&detailItem.genre
&&&&&&&&let&dateFormatter&=&NSDateFormatter()
&&&&&&&&dateFormatter.timeStyle&=&.ShortStyle
&&&&&&&&self.timeLabel.text&=&dateFormatter.stringFromDate(detailItem.time)
&&&&&&&&let&activity&=&NSUserActivity(activityType:&"com.tutsplus.iOS-9-Search.displayShow")
&&&&&&&&activity.userInfo&=&["name":&detailItem.name,&"genre":&detailItem.genre,&"time":&detailItem.time]
&&&&&&&&activity.title&=&detailItem.name
&&&&&&&&var&keywords&=&ponentsSeparatedByString("&")
&&&&&&&&keywords.append(detailItem.genre)
&&&&&&&&activity.keywords&=&Set(keywords)
&&&&&&&&activity.eligibleForHandoff&=&false
&&&&&&&&activity.eligibleForSearch&=&true
&&&&&&&&//activity.eligibleForPublicIndexing&=&true
&&&&&&&&//activity.expirationDate&=&NSDate()
&&&&&&&&let&attributeSet&=&CSSearchableItemAttributeSet(itemContentType:&kUTTypeItem&as&String)
&&&&&&&&attributeSet.title&=&detailItem.name
&&&&&&&&attributeSet.contentDescription&=&detailItem.genre&+&"\n"&+&dateFormatter.stringFromDate(detailItem.time)
&&&&&&&&activity.becomeCurrent()
}最后一次编译运行APP,然后打开一些节目。当你搜索一个节目时,你将会看到你的结果,伴随NSUserActivity的创建,拥有和Core Spotlight 搜索结果相同级别的细节信息。总结在这个教程中,你学习到了使用NSUserActivity类和 Core Spotlight框架来使你的应用里的内容可被iOS Spotlight 索引。我也向你展示了怎样使用这两个APIs在你的应用里索引内容以及当一个搜索结果被用户选中时怎样复原你的应用的状态。在iOS9中介绍的新的搜索APIs使用都很方便而且可以使你的应用中的内容更简单的被用户发现和接触。一如既往的,如果你有任何评论或问题,在下方的评论框里留言。
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量14030点击量12280点击量10730点击量9287点击量8051点击量7285点击量7030点击量6448点击量6221
&2015 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 苹果9.0系统搜索界面 的文章

 

随机推荐