今天扩展 AutoLayout 不工作

Today Extension AutoLayout Not Working

我的问题是我不知道如何显示我的整个扩展程序。它应该显示四行,但它总是像这样切断:

我阅读了一些主题并尝试了 preferredContentSize,但它也不起作用:

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

令人沮丧的是我什至不需要 preferredContentSize 因为我设置了自动布局约束!

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

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

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

我认为您的小部件不能高于您设备的特定高度。但是您可以启用扩展模式,在该模式下您可以在小部件的紧凑视图和扩展视图之间切换。

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

本文将对您有所帮助: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)
    }
}