• 官方文档翻译-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的高度,将要求用户滚动查看其所有内容

  • 相关阅读:
    FNDLOAD 迁移多语言的数据定义
    Failed to lock the main memory
    fnd_function.execute/app_navigate.execute区别
    EBS Form 高亮当前行/设置行背景色
    Fndload常用命令
    EBS Form中数据提交方式(COMMIT)
    隆回护照/港澳通行证办理流程
    浅析淘宝刷单--我们如何网购
    初识 Bootstrap
    框架、架构、设计模式
  • 原文地址:https://www.cnblogs.com/gaox97329498/p/12070201.html
Copyright © 2020-2023  润新知