小部件现在包括显示模式的概念(由NCWidgetDisplayMode表示),它可以让您描述可用的内容量,并允许用户选择紧凑或扩展视图。
如何在ios 10.0中扩展小部件?它不像ios 9那样有效。
答案 0 :(得分:48)
好的,我找到了正确的解决方案here。
1)首先在NCWidgetDisplayMode.expanded
:
viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
2)实施新的协议方法:
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if (activeDisplayMode == NCWidgetDisplayMode.compact) {
self.preferredContentSize = maxSize
}
else {
//expanded
self.preferredContentSize = CGSize(width: maxSize.width, height: 200)
}
}
它将作为官方应用程序运行。
答案 1 :(得分:7)
这是一个Objective-C。
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
withMaximumSize:(CGSize)maxSize
{
if (activeDisplayMode == NCWidgetDisplayModeCompact) {
self.preferredContentSize = maxSize;
}
else {
self.preferredContentSize = CGSizeMake(0, 200);
}
}