iOS 10 Today Extension не переходит в расширенный режим, остается компактным
Я пишу расширение Today, и оно корректно работает на моем устройстве iOS 9.
На iOS 10 я прочитал множество постов, в которых говорится, что нам нужно установить расширенный режим для расширения, расширяющегося дальше, чем высота 110, но когда я следую всем ответам о том, как это сделать, мой виджет постоянно остается в компактном режиме.,
Это то, что я использую
@available(iOS 10.0, *)
@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
self.preferredContentSize = CGSize(width: maxSize.width, height: 400)
} else if activeDisplayMode == .compact {
self.preferredContentSize = CGSize(width: maxSize.width, height: 110)
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 10.0, *) {
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
}
Я установил значение на расширенный, а затем он входит в протокол, и, находясь там, он входит в оператор else для компактного, а не расширенного.
Я попытался установить режим в viewDidAppear, а также viewWillAppear.
Нигде в моем коде я не устанавливаю параметр preredContentSize
Там есть дюжина ответов, в которых говорится, что это должно сработать, поскольку я не могу понять, что я сделал неправильно?
Есть ли что-то еще, что мне нужно делать?
Это пример принятого ответа на этот вопрос - Расширение на сегодня: как работать с режимом отображения?
ОБНОВЛЕНИЕ: я только что увидел кнопку "Показать больше"... может быть, я неправильно понял вещи, возможно ли расширить этот старт? Я вынужден нажать кнопку "Показать больше"? Это может объяснить, почему это не работает?
1 ответ
Что вы делаете, когда внедряете widgetActiveDisplayModeDidChange
разрешает пользователю расширять виджет. Текст "Показать больше" появляется в правом верхнем углу, и пользователь может нажать на него, чтобы переключиться в расширенный режим. Виджет приложения Apple для погоды является стандартным примером.