我知道以前曾问过这类问题,但没有一个问题可以解决我的问题。
我想将今天的扩展高度设置为可变。
为此,我在相关帖子中提供了以下代码:
override func viewDidLoad()
{
super.viewDidLoad()
if #available(iOSApplicationExtension 10.0, *)
{
self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded
}
else
{
// Fallback on earlier versions
}
}
@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize)
{
if activeDisplayMode == .expanded
{
preferredContentSize = CGSize(width: 0.0, height: 200.0)
}
else
{
preferredContentSize = maxSize
}
}
我面临的问题是,即使在widgetLargestAvailableDisplayMode
中将.expanded
设置为viewDidLoad
,当调用协议方法widgetActiveDisplayModeDidChange
时,它仍然会给我{ {1}} activeDisplayMode
。
要使小部件在iOS 10中正常工作还需要做些什么?
答案 0 :(得分:0)
我明白了。
实际上,当第一次加载窗口小部件时,默认情况下它处于compact
模式,因此使用widgetActiveDisplayModeDidChange
调用activeDisplayMode
作为.compact
。
加载后,
当按下显示更多按钮时,调用widgetActiveDisplayModeDidChange
activeDisplayMode
为.expanded
。
当按下显示更少按钮时,调用widgetActiveDisplayModeDidChange
activeDisplayMode
为.compact
。