一尘不染

今日扩展:如何使用显示模式?

swift

窗口小部件现在包括显示模式的概念(由NCWidgetDisplayMode表示),该概念使您可以描述可用的内容量,并允许用户选择压缩视图或展开视图。

如何在ios 10.0中扩展小部件?它无法在ios 9中运行。


阅读 254

收藏
2020-07-07

共1个答案

一尘不染

好的,我在这里找到了正确的解决方案。

1)设定的显示模式到NCWidgetDisplayMode.expanded第一中viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}

2)实施新的协议方法:

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
    if (activeDisplayMode == NCWidgetDisplayMode.compact) {
        self.preferredContentSize = maxSize
    }
    else {
        //expanded
        self.preferredContentSize = CGSize(width: maxSize.width, height: 200)
    }
}

它将作为官方应用程序运行。

图片

2020-07-07