Расширение Today: Как работать с режимом отображения?
Виджеты теперь включают в себя концепцию режима отображения (представленную NCWidgetDisplayMode), которая позволяет вам описывать объем доступного контента и позволяет пользователям выбирать компактный или расширенный вид.
Как расширить виджет в IOS 10.0? Это не работает, как в IOS 9.
2 ответа
Решение
Хорошо, я нашел правильное решение здесь.
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)
}
}
И это будет работать как официальные приложения.
Вот Objective-C один.
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
withMaximumSize:(CGSize)maxSize
{
if (activeDisplayMode == NCWidgetDisplayModeCompact) {
self.preferredContentSize = maxSize;
}
else {
self.preferredContentSize = CGSizeMake(0, 200);
}
}