官方文档翻译-Today
原文链接: Today
最后更新:2017-02-18
译文:
应用的今日视图扩展被称作小部件。小部件为用户提供快速访问重要信息的入口。例如,用户打开今日视图实时查看股票价格或天气情况,查看今天的日程安排,或者执行一个快速任务,例如标记事件已经被完成。用户往往经常打开今日视图,是希望他们感兴趣的信息是即时可用。
在锁屏状态下,如果用户允许,今日视图小部件将出现在屏幕上面。用户可以在 设置 > Touch ID 与 密码 > 通知视图 来设置 "锁屏时允许访问"。
注意:
确保今天视图扩展是适合你所提供的功能。优秀的部件能为用户提供快速更新或启用非常简单的任务。如果你想创建一个应用程序扩展,执行一个多任务或帮助用户执行一个耗时的任务,如上传或下载内容,在今天视图扩展点不是正确的选择。
理解今日视图扩展
在 iOS & OS X 平台上,今日视图部件应该:
- 确保内容总是最新的。
- 适当地响应用户的交互。
- 表现良好(特别指出iOS的部件必须合理使用内存,否则系统可能终止它们)
今日视图部件的用户交互是快速和有限的,因此你应该设计一个简单的,流线型的用户界面,突出用户感兴趣信息,在一般而言,限制小部件交互数量是一个不错的注意。尤其注意的是iOS的小部件不支持键盘输入。
注意
避免将滚动视图放在今天视图小部件里面。对用户来说,在今日部件中滚动视图是困难的。
用户配置今日视图不见根据其使用的平台不同而不一样。
iOS. 因为今日视图不允许使用键盘,用户需要能够使用包容器应用配置Widget的内容和行为。例如,在股票小部件,用户可以在符号的不同值之间切换,但他们必须打开的股票应用程序来管理列表中的符号。
OSX 容器应用可能无法执行任何功能,因此,今日视图部件需要提供方式在运行时候配置它,例如: OSX中,股票的小部件允许用户查找他们感兴趣的股票。OS X中的通知中心API包括可以用来让用户配置部件的方法。
当用户安装了带有今日视图部件的app 时, 今日视图部件就被加载到了今日视图里面去了。 用户可以在通知中心编辑、添加以及移除小部件。
使用Xcode 今日模板
Xcode的今天,模板提供默认的头和实现文件的主要类(名为:TodayViewController)、一个info.plist文件和一个接口文件(storyboard 或者 xib 文件)
默认情况下,今日视图模板提供一下 Info.plist 键值(这里显示为OS X的target)
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
<key>NSExtensionPrincipalClass</key>
<string>TodayViewController</string>
</dict>
如果你使用了自定义控制器,使用自定义的类名去替代 NSExtensionPrincipalClass的值 TodayViewController。
iOS 如果你不想使用默认的模板,移除 NSExtensionMainStoryboard键,添加 NSExtensionPrincipalClass键,值为你自定义控制器的名称。
大多数你创建一个今天插件的工作涉及UI设计和自定义视图控制器类的功能。
设计UI
重要提醒
为了达到最佳效果,请使用自动布局来设计今天视图部件。
因为今日视图部件控件有限,部件的用户体验是专注、快速。你不应该创建一个默认很大的部件。在不同平台上,今日视图部件宽度必须在今日视图的宽度内,但它可以在高度上增加显示更多的内容。
通过Xcode 模板创建今日视图,小部件使用标准的自动布局约束的间隙 insets,为了获得inset用户计算,实现 widgetMarginInsetsForProposedMarginInsets 方法,(模板的主要视图控制器符合NCWidgetProviding协议,该协议提供了这种方法),一定要确保今日视图部件的内容在 标准间隙 insets 内,想了解更多关于小部件设计,可以查阅 iOS Human Interface Guidelines.
如果一个部件有额外的内容显示,你可以依靠自动布局约束来调整窗口小部件的高度。如果你不使用自动布局,您可以使用的UIViewController属性preferredContentSize要求高度的部件。 例如:
- (void)receivedAdditionalContent {
self.preferredContentSize = [self sizeNeededToShowAdditionalContent];
}
注意
不要为你的widget的高度,将要求用户滚动查看其所有内容
官方文档翻译-Today的更多相关文章
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...
- 蓝牙4.0——Android BLE开发官方文档翻译
ble4.0开发整理资料_百度文库 http://wenku.baidu.com/link?url=ZYix8_obOT37JUQyFv-t9Y0Sv7SPCIfmc5QwjW-aifxA8WJ4iW ...
- GreenDao官方文档翻译(上)
笔记摘要: 上一篇博客简单介绍了SQLite和GreenDao的比较,后来说要详细介绍下GreenDao的使用,这里就贴出本人自己根据官网的文档进行翻译的文章,这里将所有的文档分成上下两部分翻译,只为 ...
- Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng
Aircrack-ng官方文档翻译---Airdecap-ng Description[简介] With airdecap-ng you can decrypt WEP/WPA/WPA2 capt ...
- Aircrack-ng官方文档翻译[中英对照]---Airmon-ng
Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wire ...
- Aircrack-ng官方文档翻译[中英对照]---Aireplay-ng
Aircrack-ng官方文档翻译---Aireplay-ng[90%] Description[简介] Aireplay-ng is used to inject frames. Aireplay- ...
- Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET
OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...
- Retrofit官方文档翻译
Retrofit官方文档翻译 官方文档网址 http://square.github.io/retrofit/ 介绍 Retrofit 将你的 HTTP API 转换为 Java 接口. public ...
- Spark官方文档翻译(一)~Overview
Spark官方文档翻译,有问题请及时指正,谢谢. Overview页 http://spark.apache.org/docs/latest/index.html Spark概述 Apache Spa ...
随机推荐
- python控制流-名词解释
一.控制流的元素 控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”. 二.控制流的条件 条件为了判断下一步如何进行,从而求布尔值的表达式.几乎所有的控制流语句都使用条件. 三.代码 ...
- 工具使用--Tomcat
一.Tomcat 服务搭建 1.进入apache官网下载tomcat 8.在左手边的菜单区,选择download下的tomcat8 版本: PS:操作系统,文件类型 2.将zip文件下载,解压到本地: ...
- 正反向代理、负载均衡、Nginx配置实现
一.正反向代理 1.前提 我们曾经使用翻墙软件,访问google:使用了代理软件时,需要在浏览器选项中配置代理的地址,我们仅仅有代理这个概念,并不清楚代理还有正向和反向之分. 2.正向代理(代替客户端 ...
- 基于bs4库的HTML标签遍历方法
基于bs4库的HTML标签遍历方法 import requests r=requests.get('http://python123.io/ws/demo.html') demo=r.text HTM ...
- Vue-cli3 简qian易yi教程
原文地址 对于没有了解过 vue-cli3 的童鞋,建议先去看看官方的教程: 传送门 新版本的新特性 1. 插件 使用 cli 的插件,可以很快的搭建一个项目的结构.如 axios 的插件 vue-c ...
- IPv6地址格式示例及IPv6与IPv4的区别分析
认识IPv6地址 IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示: 而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128 ...
- Java Annotation 刷课笔记(一)
1.什么是注解? 1.1.Annotation是从JDK5.0引入的新技术 1.2.Annotation的作用: 不是程序本身,可以对程序作出解释(这一点,和注释没什么区别) 可以被其他程序(比如编译 ...
- 理解长短期记忆网络(LSTM NetWorks)
转自:http://www.csdn.net/article/2015-11-25/2826323 原文链接:Understanding LSTM Networks(译者/刘翔宇 审校/赵屹华 责编/ ...
- 查看PL/SQL编译时的错误信息
编译无效对象是DBA与数据库开发人员常见的工作之一.对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法. 一.当前数据库版本信息及无效对象 1.查看当前数据库版本 [sql] view pl ...
- 前端框架之BootStrap的简单介绍
Bootstrap补充 一.一个小知识点 1.截取长屏的操作 2.设置默认格式 3.md,sm, xs 4.空格和没有空格的选择器 二.响应式介绍 - 响应式布局是什么? 同一个网页在不同的终端上呈现 ...