0
我有我的主應用程序的部件。我需要更改activedisplaymode。 Apple沒有公開任何API。它可以以任何其他方式實現。我只支持iOS 10.0及更高版本。更改widgetactivedisplaymode iOS
我有我的主應用程序的部件。我需要更改activedisplaymode。 Apple沒有公開任何API。它可以以任何其他方式實現。我只支持iOS 10.0及更高版本。更改widgetactivedisplaymode iOS
您可以在viewDidLoad中方法
override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
當你要更改尺寸,你可以做到這一點在widgetActiveDisplayModeDidChange
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if (activeDisplayMode == NCWidgetDisplayModeCompact) {
self.preferredContentSize = maxSize
}
else {
// when its in expanded mode
self.preferredContentSize = CGSize(width: 0, height: yourHeight)
}
}
寬度是固定的設置和更高版本。所以你可以通過0
如果在activecurrentdisplaymode處於壓縮模式後,widgetLargestAvailableDisplayMode再次被設置爲擴展模式會怎麼樣? – boom
緊湊模式有它自己的固定。所以你給它的任何尺寸都會被過度纏繞。所以設置widgetLargestAvailableDisplayMode不會有任何影響。 – Manoj
在viewDidLoad中設置widgetLargestAvailableDisplayMode是OS的標誌,我們希望爲擴展模式使用最大定義尺寸。稍後,當activeDisplayMode處於展開狀態時,我們可以在widgetActiveDisplayModeDidChange方法上減小它的大小 – Manoj