我正在编写一个“今日”扩展,它在我的iOS 9设备上正常工作。
在iOS 10上,我读过许多帖子,说我们需要为扩展设置扩展模式,以便扩展到比110高度更高的地方,但是当我跟踪所有关于如何实现扩展的答案时,我的小部件就会持续保持紧凑模式。
这就是我要用的
@available(iOS 10.0, *)
@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
self.preferredContentSize = CGSize(width: maxSize.width, height: 400)
} else if activeDisplayMode == .compact {
self.preferredContentSize = CGSize(width: maxSize.width, height: 110)
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 10.0, *) {
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
}
我将值设置为展开,然后将其放入协议中,而在协议中,它将进入用于compact,而不是expanded语句中。
我已经尝试过在viewDidAppear和viewWillAppear中设置模式。
在我的代码中,我没有设置preferedContentSize
有十几个答案说,这应该有效,对于我的生活,我不知道我做错了什么?
还有什么需要我做的吗?
这是一个被接受的答案的例子- Today Extension: How to work with display mode?。
更新:我刚看到“显示更多”按钮..。也许我误解了一些事情,是否有可能把这个开始扩大?我被迫按下“显示更多”按钮吗?这也许能解释为什么它不起作用?
发布于 2017-03-15 20:15:16
当您实现widgetActiveDisplayModeDidChange
时,您所做的是允许用户展开小部件。显示更多文本出现在右上角,用户可以点击这个按钮切换到扩展模式。苹果的天气应用小部件就是一个标准的例子。
https://stackoverflow.com/questions/42824997
复制