10

小部件现在包括显示模式的概念(由NCWidgetDisplayMode表示),它可以让您描述有多少内容可用,并允许用户选择紧凑或扩展视图。

如何在 ios 10.0 中扩展小部件?它不像在 ios 9 中那样工作。

4

2 回答 2

50

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

1) 将显示模式设置为NCWidgetDisplayMode.expandedfirst in 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)
    }
}

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

图片

于 2016-06-24T08:43:51.313 回答
8

这是一个Objective-C。

- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
                         withMaximumSize:(CGSize)maxSize
{
    if (activeDisplayMode == NCWidgetDisplayModeCompact) {
        self.preferredContentSize = maxSize;
    }
    else {
        self.preferredContentSize = CGSizeMake(0, 200);
    }
}
于 2016-08-15T07:03:33.830 回答