Сегодня расширение AutoLayout не работает

Моя проблема в том, что я не могу понять, как отобразить все расширение. Он должен отображать четыре строки, но он всегда обрезается следующим образом:

Отключить расширение

Я прочитал некоторые потоки и попробовал предпочитаемыйContentSize, но он тоже не работает:

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

Что меня расстраивает, так это то, что мне даже не нужен PreferredContentSize, потому что я установил ограничения автоматического макета!

ограничения автомакета

Вы заметите, что нижнее ограничение представляет собой пунктирную линию, потому что в настоящее время для него установлен приоритет 999, но я пробовал и 1000.

Как это исправить? Пожалуйста помоги!!


person Dave G    schedule 22.09.2016    source источник


Ответы (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)
    }
}
person maddy    schedule 22.09.2016