Reputation: 23
How to resize the height of widget in iOS 11?
I cannot resize the height of today Extension.
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == NCWidgetDisplayMode.compact {
//compact
self.preferredContentSize = maxSize
} else {
//extended
self.preferredContentSize = CGSize(width: 0, height: 200)
}
}
Upvotes: 0
Views: 762
Reputation: 23
I write to the didReceiveMemoryWarning but the correct is to write to the viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded}
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == NCWidgetDisplayMode.compact {
//compact
self.preferredContentSize = maxSize
} else {
//extended
self.preferredContentSize = CGSize(width: 0, height: 200)
}
Upvotes: 1
Reputation: 19737
A bit of a guess, but try this (using maxSize.width
instead of 0 width):
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == NCWidgetDisplayMode.compact {
//compact
self.preferredContentSize = maxSize
} else {
//extended
self.preferredContentSize = CGSize(width: maxSize.width, height: 200)
}
}
Also, don't forget to add this line to enable .expanded
mode (e.g., to viewDidLoad
):
self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded
Upvotes: 3