Ich bin dabei, programmatisch die Höhe einer heutigen Erweiterung zu ändern. Als das iOS10 SDSK eingeführt NCWidgetDisplayMode
Ich versuche, es zu verwenden, um die Höhe meiner preferredContentSize
programmgesteuert zu ändern.Ändern Sie NCWidgetDisplayMode programmgesteuert in IOS10 Widget
Ich habe implementiert 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)
}
}
ich das Widget Höhe erweitern möchten, wenn ein UIButton
gedrückt wird:
@IBAction func multiplybyonethousand (sender: AnyObject) {
if self.extensionContext?.widgetActiveDisplayMode == NCWidgetDisplayMode.Compact {
self.widgetActiveDisplayModeDidChange(.Expanded, withMaximumSize: CGSizeMake(0, 300))
}
}
Allerdings, wenn ich meinen Code ausführen, wird die Höhe der heutigen Erweiterung nicht ändern und die Konsole gibt mir den folgenden Fehler:
2016-11-05 14:24:29.425697 todayextension[28590:7222420] No active animation block!
Ich habe versucht, widgetActiveDisplayModeDidChange
innerhalb einer Animation Block zu nennen:
@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
}
}
}
Aber ich immer noch die No active animation block!
Fehlermeldung. Gibt es eine Möglichkeit, eine heutige Erweiterungsansicht in iOS10 programmatisch zu erweitern?