我希望以编程方式更改今天扩展的高度。随着 iOS10 SDSK 的介绍NCWidgetDisplayMode
,我正在尝试使用它以编程方式更改preferredContentSize
.
我已经实施widgetActiveDisplayModeDidChange
:
@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if (activeDisplayMode == NCWidgetDisplayMode.Compact) {
self.preferredContentSize = maxSize
}
else {
self.preferredContentSize = CGSize(width: maxSize.width, height: 280)
}
}
我希望在UIButton
按下 a 时扩展小部件高度:
@IBAction func multiplybyonethousand (sender: AnyObject) {
if self.extensionContext?.widgetActiveDisplayMode == NCWidgetDisplayMode.Compact {
self.widgetActiveDisplayModeDidChange(.Expanded, withMaximumSize: CGSizeMake(0, 300))
}
}
但是,当我运行我的代码时,今天扩展的高度没有改变,并且控制台给了我以下错误:
2016-11-05 14:24:29.425697 todayextension[28590:7222420] No active animation block!
我试图widgetActiveDisplayModeDidChange
在动画块内调用:
@IBAction func multiplybyonethousand (sender: AnyObject) {
if self.extensionContext?.widgetActiveDisplayMode == NCWidgetDisplayMode.Compact {
UIView.animateWithDuration(0.2, delay: 0, options: .CurveLinear, animations: { () -> Void in
self.widgetActiveDisplayModeDidChange(.Expanded, withMaximumSize: CGSizeMake(0, 300))
}) { (completed) -> Void in
//Do Stuff
}
}
}
但我仍然收到No active animation block!
错误消息。有没有办法在 iOS10 中以编程方式扩展今天的扩展视图?