今天扩展AutoLayout不工作

时间:2016-09-22 10:41:52

标签: swift autolayout today-extension

我的问题是我无法弄清楚如何让我的整个扩展程序显示出来。它应该显示四行,但它总是像这样切断:

Cut off Today extension

我读了一些帖子并尝试了preferredContentSize,但它也不起作用:

func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) {
    self.preferredContentSize = CGSize(width: 0, height: 400)        
    completionHandler(NCUpdateResult.newData)
}

令我感到沮丧的是,我甚至不需要preferredContentSize,因为我设置了自动布局限制!

autolayout constraints

您会注意到底部约束是虚线,因为它当前设置为999优先级但我也尝试过1000。

我该如何解决这个问题?请帮忙!!

1 个答案:

答案 0 :(得分:1)

我知道你在说什么,我也有同样的问题。

我认为您的小部件不能高于设备的某个高度。但您可以启用扩展模式,您可以在其中切换窗口小部件的紧凑视图和展开视图。

我想它应该从过大的小部件中清除今天的视图。

本文将为您提供帮助:https://forums.developer.apple.com/thread/48930

重要的部分是:

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded

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