Change NCWidgetDisplayMode programmgesteuert in IOS10 Widget

Ich möchte die Höhe einer heutigen Erweiterung programmgesteuert ändern. Wie das iOS10 SDSK vorgestelltNCWidgetDisplayMode Ich versuche, damit die Höhe meines @ programmgesteuert zu änderpreferredContentSize.

Ich habe @ implementiewidgetActiveDisplayModeDidChange:

@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 möchte, dass die Höhe des Widgets erweitert wird, wenn einUIButton wird gedrückt

@IBAction func multiplybyonethousand (sender: AnyObject) {

    if self.extensionContext?.widgetActiveDisplayMode == NCWidgetDisplayMode.Compact {

        self.widgetActiveDisplayModeDidChange(.Expanded, withMaximumSize: CGSizeMake(0, 300))
    }
}

Wenn ich jedoch meinen Code ausführe, ändert sich die Höhe der heutigen Erweiterung nicht und die Konsole gibt folgende Fehlermeldung aus:

2016-11-05 14:24:29.425697 todayextension[28590:7222420] No active animation block!

Ich habe versucht, @ anzurufwidgetActiveDisplayModeDidChange innerhalb eines Animationsblocks:

@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 bekomme immer noch dieNo active animation block! Fehlermeldung. Gibt es eine Möglichkeit, eine Heute-Erweiterungsansicht in iOS10 programmgesteuert zu erweitern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage