Je cherche à modifier par programme la hauteur d'une extension aujourd'hui. Comme l'iOS10 SDSK a présenté NCWidgetDisplayMode
j'essaye de l'employer pour changer par programme la taille de mon preferredContentSize
.Modifier NCWidgetDisplayMode par programme dans IOS10 Widget
J'ai mis en 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)
}
}
Je veux la hauteur de widget pour développer lorsqu'un UIButton
est pressé:
@IBAction func multiplybyonethousand (sender: AnyObject) {
if self.extensionContext?.widgetActiveDisplayMode == NCWidgetDisplayMode.Compact {
self.widgetActiveDisplayModeDidChange(.Expanded, withMaximumSize: CGSizeMake(0, 300))
}
}
Cependant quand je lance mon code, la hauteur de l'extension aujourd'hui fait pas changer et la console me donne l'erreur suivante:
2016-11-05 14:24:29.425697 todayextension[28590:7222420] No active animation block!
J'ai essayé d'appeler widgetActiveDisplayModeDidChange
l'intérieur d'un bloc d'animation:
@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
}
}
}
mais je reçois toujours le message d'erreur No active animation block!
. Existe-t-il un moyen d'étendre par programmation une vue d'extension d'aujourd'hui dans iOS10?