我正在尋找以編程方式更改今日擴展的高度。正如iOS10 SDSK的介紹NCWidgetDisplayMode
我試圖用它來以編程方式更改我的preferredContentSize
的高度。在IOS10 Widget中以編程方式更改NCWidgetDisplayMode
我已經實現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
小部件高度擴展:當我運行我的代碼
@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中擴展今日擴展視圖?