Ok, i found right solution here.
1) Set the display mode to NCWidgetDisplayMode.expanded
first in viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
2) Implement new protocol method:
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if (activeDisplayMode == NCWidgetDisplayMode.compact) {
self.preferredContentSize = maxSize
}
else {
//expanded
self.preferredContentSize = CGSize(width: maxSize.width, height: 200)
}
}
And it will work as official apps.
Image
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…