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

时间:2016-06-23 15:26:15

标签: xcode swift expand today-extension ios10

  

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

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

2 个答案:

答案 0 :(得分:48)

好的,我找到了正确的解决方案here

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)
    }
}

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

Image

答案 1 :(得分:7)

这是一个Objective-C。

- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
                         withMaximumSize:(CGSize)maxSize
{
    if (activeDisplayMode == NCWidgetDisplayModeCompact) {
        self.preferredContentSize = maxSize;
    }
    else {
        self.preferredContentSize = CGSizeMake(0, 200);
    }
}