iOS 10 の今日の拡張機能を更新して、デリゲート メソッドを実装しました。
-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
{
if (activeDisplayMode == NCWidgetDisplayModeCompact){
[UIView animateWithDuration:0.25 animations:^{
self.preferredContentSize = maxSize;
[self.view layoutIfNeeded];
}];
}
else if (activeDisplayMode == NCWidgetDisplayModeExpanded){
newHeight = [self getNewWidgetHeight];
[UIView animateWithDuration:0.25 animations:^{
self.preferredContentSize = CGSizeMake(0, newHeight);
[self.view layoutIfNeeded];
}];
}
}
すべて正常に動作します。しかし、ウィジェットをコンパクト モード (さらに表示オプションを使用可能) のままにし、ウィジェット画面を再実行/再度開いて、[さらに表示] ボタンをタップしても、デリゲート メソッドがトリガーされても何も起こりません。ウィジェットが拡大し始めるまで、表示を増やす/減らすを 2 回押す必要があります。次のエラーも表示されます。No active animation block!