NCWidgetDisplayMode 未设置为 .expanded iOS 10
NCWidgetDisplayMode not set to .expanded in iOS 10
我知道以前有人问过这种类型的问题,但是 none 能够解决我的问题。
我想将今天的延伸高度设置为可变的。
为此,我按照相关帖子中的建议包含了以下代码:
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
}
}
我面临的问题是,即使在 viewDidLoad
中将 widgetLargestAvailableDisplayMode
设置为 .expanded
后,当调用协议方法 widgetActiveDisplayModeDidChange
时,它仍然给我activeDisplayMode
作为 .compact
.
还需要做什么才能使小部件在 iOS 10 中正常工作?
我明白了。
实际上,当第一次加载小部件时,它默认处于 compact
模式,因此 widgetActiveDisplayModeDidChange
被调用 activeDisplayMode
为 .compact
。
加载后,
当 Show More 按钮被按下时,widgetActiveDisplayModeDidChange
被调用 activeDisplayMode
作为 .expanded
.
当按下 Show Less 按钮时,widgetActiveDisplayModeDidChange
被调用 activeDisplayMode
作为 .compact
.
我知道以前有人问过这种类型的问题,但是 none 能够解决我的问题。
我想将今天的延伸高度设置为可变的。
为此,我按照相关帖子中的建议包含了以下代码:
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
}
}
我面临的问题是,即使在 viewDidLoad
中将 widgetLargestAvailableDisplayMode
设置为 .expanded
后,当调用协议方法 widgetActiveDisplayModeDidChange
时,它仍然给我activeDisplayMode
作为 .compact
.
还需要做什么才能使小部件在 iOS 10 中正常工作?
我明白了。
实际上,当第一次加载小部件时,它默认处于 compact
模式,因此 widgetActiveDisplayModeDidChange
被调用 activeDisplayMode
为 .compact
。
加载后,
当 Show More 按钮被按下时,
widgetActiveDisplayModeDidChange
被调用activeDisplayMode
作为.expanded
.当按下 Show Less 按钮时,
widgetActiveDisplayModeDidChange
被调用activeDisplayMode
作为.compact
.